1<!doctype html> 2<html class="no-js" lang="en-GB"> 3 <head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0, user-scalable=no"> 6 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 7 <style> 8 #astroidzContainer { 9 background: radial-gradient(ellipse at center, #383d3f 0%, #000000 60%); 10 } 11 </style> 12 <meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' /> 13 14 <!-- This site is optimized with the Yoast SEO plugin v28.5 - https://yoast.com/product/yoast-seo-wordpress/ --> 15 <title>About - Aleksey Savchenko</title> 16 <meta name="description" content="Learn how a celebrated career in the games industry inspired author Aleksey Savchenko to develop his own creative universe." /> 17 <link rel="canonical" href="https://alekseysavchenko.com/about-aleksey-savchenko/" /> 18 <meta property="og:locale" content="en_GB" /> 19 <meta property="og:type" content="article" /> 20 <meta property="og:title" content="About - Aleksey Savchenko" /> 21 <meta property="og:description" content="Learn how a celebrated career in the games industry inspired author Aleksey Savchenko to develop his own creative universe." /> 22 <meta property="og:url" content="https://alekseysavchenko.com/about-aleksey-savchenko/" /> 23 <meta property="og:site_name" content="Aleksey Savchenko" /> 24 <meta property="article:modified_time" content="2026-09-18T10:37:26+00:00" /> 25 <meta property="og:image" content="https://alekseysavchenko.com/wp-content/uploads/2026/03/Aleksey_Savchanko_about_2.jpg" /> 26 <meta name="twitter:card" content="summary_large_image" /> 27 <meta name="twitter:label1" content="Estimated reading time" /> 28 <meta name="twitter:data1" content="4 minutes" /> 29
29<script type="application/ld+json" class="yoast-schema-graph">{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/alekseysavchenko.com\/about-aleksey-savchenko\/","url":"https:\/\/alekseysavchenko.com\/about-aleksey-savchenko\/","name":"About - Aleksey Savchenko","isPartOf":{"@id":"https:\/\/alekseysavchenko.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/alekseysavchenko.com\/about-aleksey-savchenko\/#primaryimage"},"image":{"@id":"https:\/\/alekseysavchenko.com\/about-aleksey-savchenko\/#primaryimage"},"thumbnailUrl":"https:\/\/alekseysavchenko.com\/wp-content\/uploads\/2026\/03\/Aleksey_Savchanko_about_2.jpg","datePublished":"2026-02-17T15:29:14+00:00","dateModified":"2026-09-18T10:37:26+00:00","description":"Learn how a celebrated career in the games industry inspired author Aleksey Savchenko to develop his own creative universe.","breadcrumb":{"@id":"https:\/\/alekseysavchenko.com\/about-aleksey-savchenko\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/alekseysavchenko.com\/about-aleksey-savchenko\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/alekseysavchenko.com\/about-aleksey-savchenko\/#primaryimage","url":"https:\/\/alekseysavchenko.com\/wp-content\/uploads\/2026\/03\/Aleksey_Savchanko_about_2.jpg","contentUrl":"https:\/\/alekseysavchenko.com\/wp-content\/uploads\/2026\/03\/Aleksey_Savchanko_about_2.jpg","width":1333,"height":2000,"caption":"Games developer and author Aleksey Savchenko"},{"@type":"BreadcrumbList","@id":"https:\/\/alekseysavchenko.com\/about-aleksey-savchenko\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/alekseysavchenko.com\/"},{"@type":"ListItem","position":2,"name":"About"}]},{"@type":"WebSite","@id":"https:\/\/alekseysavchenko.com\/#website","url":"https:\/\/alekseysavchenko.com\/","name":"Aleksey Savchenko","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/alekseysavchenko.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"}]}</script>
29 30 <!-- / Yoast SEO plugin. --> 31 32 33<link rel='dns-prefetch' href='//maps.googleapis.com' /> 34<link rel='dns-prefetch' href='//www.google.com' /> 35<link rel="alternate" type="application/rss+xml" title="Aleksey Savchenko » Feed" href="https://alekseysavchenko.com/feed/" /> 36<link rel="alternate" type="application/rss+xml" title="Aleksey Savchenko » Comments Feed" href="https://alekseysavchenko.com/comments/feed/" /> 37<link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://alekseysavchenko.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Falekseysavchenko.com%2Fabout-aleksey-savchenko%2F" /> 38<link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://alekseysavchenko.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Falekseysavchenko.com%2Fabout-aleksey-savchenko%2F&format=xml" /> 39 40<link rel='stylesheet' id='owl-carousel-css' href='https://alekseysavchenko.com/wp-content/plugins/vice-elementor/assets/components/owl-carousel/dist/assets/owl.carousel.min.css?ver=2.3.2' media='all' /> 41<link rel='stylesheet' id='vice-elementor-css' href='https://alekseysavchenko.com/wp-content/plugins/vice-elementor/assets/css/extend.css?ver=7.1.3' media='all' /> 42<style id="wp-emoji-styles-inline-css"> 43 44 img.wp-smiley, img.emoji { 45 display: inline !important; 46 border: none !important; 47 box-shadow: none !important; 48 height: 1em !important; 49 width: 1em !important; 50 margin: 0 0.07em !important; 51 vertical-align: -0.1em !important; 52 background: none !important; 53 padding: 0 !important; 54 } 55/*# sourceURL=wp-emoji-styles-inline-css */ 56</style> 57<style id="classic-theme-styles-inline-css"> 58/*! This file is auto-generated */ 59.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none} 60/*# sourceURL=/wp-includes/css/classic-themes.min.css */ 61</style> 62<style id="global-styles-inline-css"> 63:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgb(6,147,227) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgb(252,185,0) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgb(255,105,0) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);
63--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp: 6px 6px 0px rgb(0, 0, 0);}.wp-block-button{--wp--preset--dimension--25: 25%;--wp--preset--dimension--50: 50%;--wp--preset--dimension--75: 75%;--wp--preset--dimension--100: 100%;}:where(body) { margin: 0; }:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}:root :where(.wp-element-button, .wp-block-button__link){background-color: #32373c;border-width: 0;color: #fff;font-family: inherit;font-size: inherit;font-style: inherit;font-weight: inherit;letter-spacing: inherit;line-height: inherit;padding-top: calc(0.667em + 2px);padding-right: calc(1.333em + 2px);padding-bottom: calc(0.667em + 2px);padding-left: calc(1.333em + 2px);text-decoration: none;text-transform: inherit;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}
63.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;} 64:root :where(.wp-block-icon svg){width: 24px;} 65:where(.wp-block-gallery.is-layout-flex){gap: var( --wp--style--gallery-gap-default, var( --gallery-block--gutter-size, var( --wp--style--block-gap, 0.5em ) ) );}:where(.wp-block-gallery.is-layout-grid){gap: var( --wp--style--gallery-gap-default, var( --gallery-block--gutter-size, var( --wp--style--block-gap, 0.5em ) ) );} 66:where(.wp-block-latest-posts.is-layout-flex){gap: 1.25em;}:where(.wp-block-latest-posts.is-layout-grid){gap: 1.25em;} 67:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;} 68:where(.wp-block-term-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-term-template.is-layout-grid){gap: 1.25em;} 69:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;} 70:root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;} 71/*# sourceURL=global-styles-inline-css */ 72</style> 73<link rel='stylesheet' id='astroidz-style-css' href='https://alekseysavchenko.com/wp-content/plugins/astroidz/assets/css/astroidz-style.css?ver=1.0.0' media='all' /> 74<link rel='stylesheet' id='contact-form-7-css' href='https://alekseysavchenko.com/wp-content/plugins/contact-form-7/includes/css/styles.css?ver=6.1.7' media='all' /> 75<link rel='stylesheet' id='mailerlite_forms.css-css' href='https://alekseysavchenko.com/wp-content/plugins/official-mailerlite-sign-up-forms/assets/css/mailerlite_forms.css?ver=1.7.26' media='all' /> 76<link rel='stylesheet' id='QtswipeStyle-css' href='https://alekseysavchenko.com/wp-content/plugins/qt-swipebox/swipebox/css/swipebox.min.css?ver=7.1.3' media='all' /> 77<link rel='stylesheet' id='cmplz-general-css' href='https://alekseysavchenko.com/wp-content/plugins/complianz-gdpr/assets/css/cookieblocker.min.css?ver=1789646579' media='all' /> 78<link rel='stylesheet' id='vice-css' href='https://alekseysavchenko.com/wp-content/themes/vice/style.css?ver=7.1.3' media='all' /> 79<link rel='stylesheet' id='vice-dhrk-css' href='https://alekseysavchenko.com/wp-content/themes/vice-dhrk/style.css?ver=7.1.3' media='all' /> 80<link rel='stylesheet' id='dhrk-css' href='https://alekseysavchenko.com/wp-content/themes/vice-dhrk/assets/css/dhrk.css?ver=7.1.3' media='all' /> 81<link rel='stylesheet' id='_s-mainstyle-css' href='https://alekseysavchenko.com/wp-content/themes/vice/css/main.css?ver=7.1.3' media='all' /> 82<link rel='stylesheet' id='_s-style-css' href='https://alekseysavchenko.com/wp-content/themes/vice-dhrk/style.css?ver=7.1.3' media='all' /> 83<link rel='stylesheet' id='elementor-frontend-css' href='https://alekseysavchenko.com/wp-content/plugins/elementor/assets/css/frontend.min.css?ver=4.2.4' media='all' /> 84<link rel='stylesheet' id='elementor-post-8-css' href='https://alekseysavchenko.com/wp-content/uploads/elementor/css/post-8.css?ver=1791311837' media='all' /> 85<link rel='stylesheet' id='font-awesome-5-all-css' href='https://alekseysavchenko.com/wp-content/plugins/elementor/assets/lib/font-awesome/css/all.min.css?ver=4.2.4' media='all' /> 86<link rel='stylesheet' id='font-awesome-4-shim-css' href='https://alekseysavchenko.com/wp-content/plugins/elementor/assets/lib/font-awesome/css/v4-shims.min.css?ver=4.2.4' media='all' /> 87<link rel='stylesheet' id='widget-heading-css' href='https://alekseysavchenko.com/wp-content/plugins/elementor/assets/css/widget-heading.min.css?ver=4.2.4' media='all' /> 88<link rel='stylesheet' id='widget-image-css' href='https://alekseysavchenko.com/wp-content/plugins/elementor/assets/css/widget-image.min.css?ver=4.2.4' media='all' /> 89<link rel='stylesheet' id='widget-testimonial-css' href='https://alekseysavchenko.com/wp-content/plugins/elementor/assets/css/widget-testimonial.min.css?ver=4.2.4' media='all' /> 90<link rel='stylesheet' id='widget-divider-css' href='https://alekseysavchenko.com/wp-content/plugins/elementor/assets/css/widget-divider.min.css?ver=4.2.4' media='all' /> 91<link rel='stylesheet' id='elementor-post-802-css' href='https://alekseysavchenko.com/wp-content/uploads/elementor/css/post-802.css?ver=1791319186' media='all' /> 92<link rel='stylesheet' id='eael-general-css' href='https://alekseysavchenko.com/wp-content/plugins/essential-addons-for-elementor-lite/assets/front-end/css/view/general.min.css?ver=6.8.4' media='all' /> 93<link rel='stylesheet' id='cmplz-banner-1-optin-css' href='https://alekseysavchenko.com/wp-content/uploads/complianz/css/banner-1-optin.css?ver=1789646586' media='all' /> 94<link rel='stylesheet' id='elementor-gf-roboto-css' href='https://fonts.googleapis.com/css?family=Roboto:100,100italic,200,200italic,300,300italic,400,400italic,500,500italic,600,600italic,700,700italic,800,800italic,900,900italic&display=swap' media='all' /> 95<link rel='stylesheet' id='elementor-gf-robotoslab-css' href='https://fonts.googleapis.com/css?family=Roboto+Slab:100,100italic,200,200italic,300,300italic,400,400italic,500,500italic,600,600italic,700,700italic,800,800italic,900,900italic&display=swap' media='all' />
96<script id="jquery-core-js" src="https://alekseysavchenko.com/wp-includes/js/jquery/jquery.min.js?ver=3.7.1"></script>
vendor: 1 bytes, line 96
96
97<script id="jquery-migrate-js" src="https://alekseysavchenko.com/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1"></script>
vendor: 1 bytes, line 97
97
98<script id="google-maps-js" src="https://maps.googleapis.com/maps/api/js?key=AIzaSyB-LBXKKQSPihdzG3D2iiClHvCDZ_Xr184&ver=7.1.3"></script>
vendor: 1 bytes, line 98
98
99<script id="google-jsapi-js" src="https://www.google.com/jsapi?ver=7.1.3"></script>
vendor: 1 bytes, line 99
99
100<script id="font-awesome-4-shim-js" src="https://alekseysavchenko.com/wp-content/plugins/elementor/assets/lib/font-awesome/js/v4-shims.min.js?ver=4.2.4"></script>
100 101<link rel="https://api.w.org/" href="https://alekseysavchenko.com/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://alekseysavchenko.com/wp-json/wp/v2/pages/802" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://alekseysavchenko.com/xmlrpc.php?rsd" /> 102<meta name="generator" content="WordPress 7.1.3" /> 103<link rel='shortlink' href='https://alekseysavchenko.com/?p=802' /> 104<meta name="cdp-version" content="1.5.6" /> <!-- MailerLite Universal --> 105
105<script> 106 (function(w,d,e,u,f,l,n){w[f]=w[f]||function(){(w[f].q=w[f].q||[]) 107 .push(arguments);},l=d.createElement(e),l.async=1,l.src=u, 108 n=d.getElementsByTagName(e)[0],n.parentNode.insertBefore(l,n);}) 109 (window,document,'script','https://assets.mailerlite.com/js/universal.js','ml'); 110 ml('account', '2403752'); 111 ml('enablePopups', true); 112 </script>
112 113 <!-- End MailerLite Universal --> 114 <style>.cmplz-hidden { 115 display: none !important; 116 }</style> 117 <meta name="og:url" content="https://alekseysavchenko.com/about-aleksey-savchenko/" /><meta name="generator" content="Elementor 4.2.4; features: e_font_icon_svg, additional_custom_breakpoints; settings: css_print_method-external, google_font-enabled, font_display-swap"> 118 <style> 119 .e-con.e-parent:nth-of-type(n+4):not(.e-lazyloaded):not(.e-no-lazyload), 120 .e-con.e-parent:nth-of-type(n+4):not(.e-lazyloaded):not(.e-no-lazyload) * { 121 background-image: none !important; 122 } 123 @media screen and (max-height: 1024px) { 124 .e-con.e-parent:nth-of-type(n+3):not(.e-lazyloaded):not(.e-no-lazyload), 125 .e-con.e-parent:nth-of-type(n+3):not(.e-lazyloaded):not(.e-no-lazyload) * { 126 background-image: none !important; 127 } 128 } 129 @media screen and (max-height: 640px) { 130 .e-con.e-parent:nth-of-type(n+2):not(.e-lazyloaded):not(.e-no-lazyload), 131 .e-con.e-parent:nth-of-type(n+2):not(.e-lazyloaded):not(.e-no-lazyload) * { 132 background-image: none !important; 133 } 134 } 135 </style> 136 <link rel="icon" href="https://alekseysavchenko.com/wp-content/uploads/2026/05/cropped-Favicon-1-32x32.png" sizes="32x32" /> 137<link rel="icon" href="https://alekseysavchenko.com/wp-content/uploads/2026/05/cropped-Favicon-1-192x192.png" sizes="192x192" /> 138<link rel="apple-touch-icon" href="https://alekseysavchenko.com/wp-content/uploads/2026/05/cropped-Favicon-1-180x180.png" /> 139<meta name="msapplication-TileImage" content="https://alekseysavchenko.com/wp-content/uploads/2026/05/cropped-Favicon-1-270x270.png" /> 140<style id="wp-custom-css"> 141/* ===== DHRK / Vice footer fix ===== */ 142 143/* Target the actual footer row */ 144.vice-footer-widget .dhrk-footer-widget .dhrk-container .row, 145.dhrk-footer-widget .dhrk-container .row { 146 display: flex !important; 147 flex-wrap: nowrap !important; 148 justify-content: space-between !important; 149 align-items: flex-start !important; 150 margin: 0 !important; 151} 152 153/* Target the actual footer columns */ 154.vice-footer-widget .dhrk-footer-widget .dhrk-container .row > .col-md-3, 155.dhrk-footer-widget .dhrk-container .row > .col-md-3 { 156 flex: 1 1 0 !important; 157 max-width: none !important; 158 width: auto !important; 159 float: none !important; 160 padding-left: 0 !important; 161 padding-right: 0 !important; 162 margin: 0 !important; 163} 164 165/* Hide the fourth footer column completely */ 166.vice-footer-widget .dhrk-footer-widget .dhrk-container .row > .col-md-3:nth-child(4), 167.dhrk-footer-widget .dhrk-container .row > .col-md-3:nth-child(4) { 168 display: none !important; 169} 170 171/* Push the three visible columns apart */ 172.vice-footer-widget .dhrk-footer-widget .dhrk-container .row > .col-md-3:nth-child(1), 173.dhrk-footer-widget .dhrk-container .row > .col-md-3:nth-child(2), 174.dhrk-footer-widget .dhrk-container .row > .col-md-3:nth-child(3), 175.dhrk-footer-widget .dhrk-container .row > .col-md-3:nth-child(1), 176.dhrk-footer-widget .dhrk-container .row > .col-md-3:nth-child(2), 177.dhrk-footer-widget .dhrk-container .row > .col-md-3:nth-child(3) { 178 display: flex !important; 179 flex-direction: column !important; 180} 181 182/* Alignment */ 183.vice-footer-widget .dhrk-footer-widget .dhrk-container .row > .col-md-3:nth-child(1), 184.dhrk-footer-widget .dhrk-container .row > .col-md-3:nth-child(1) { 185 text-align: left !important; 186 align-items: flex-start !important; 187} 188 189.vice-footer-widget .dhrk-footer-widget .dhrk-container .row > .col-md-3:nth-child(2), 190.dhrk-footer-widget .dhrk-container .row > .col-md-3:nth-child(2) { 191 text-align: center !important; 192 align-items: center !important; 193} 194 195.vice-footer-widget .dhrk-footer-widget .dhrk-container .row > .col-md-3:nth-child(3), 196.dhrk-footer-widget .dhrk-container .row > .col-md-3:nth-child(3) { 197 text-align: right !important; 198 align-items: flex-end !important; 199} 200 201/* Remove top offsets that make the bio sit higher */ 202.vice-footer-widget .dhrk-footer-widget h1, 203.vice-footer-widget .dhrk-footer-widget h2, 204.vice-footer-widget .dhrk-footer-widget h3, 205.vice-footer-widget .dhrk-footer-widget h4, 206.vice-footer-widget .dhrk-footer-widget h5, 207.vice-footer-widget .dhrk-footer-widget h6, 208.vice-footer-widget .dhrk-footer-widget p, 209.vice-footer-widget .dhrk-footer-widget ul, 210.dhrk-footer-widget h1, 211.dhrk-footer-widget h2, 212.dhrk-footer-widget h3, 213.dhrk-footer-widget h4, 214.dhrk-footer-widget h5, 215.dhrk-footer-widget h6, 216.dhrk-footer-widget p, 217.dhrk-footer-widget ul { 218 margin-top: 0 !important; 219} 220 221/* Clean menu list */ 222.vice-footer-widget .dhrk-footer-widget ul, 223.dhrk-footer-widget ul { 224 list-style: none !important; 225 padding-left: 0 !important; 226 margin-bottom: 0 !important; 227} 228 229}* tighten footer spacing */ 230.dhrk-footer-widget { 231 padding-bottom: 10px !important; 232} 233 234.dhrk-page-footer { 235 padding-top: 5px !important; 236 padding-bottom: 5px !important; 237 margin-bottom: 0 !important; 238} 239 240.dhrk-pagefooter { 241 padding: 30px; 242} 243 244 245.mailerlite-form-field input { 246 width: 100%; 247} 248.mailerlite-form-field input::placeholder { 249 color:#f7f7ff; 250} 251.mailerlite-form-inputs label { 252 display: none!important; 253} 254.mailerlite-form .mailerlite-subscribe-button-container button { 255 background: #ff2c7b; 256} 257</style> 258 </head> 259 <body data-cmplz=1 id="theBody" class="wp-singular page-template page-template-elementor_header_footer page page-id-802 wp-theme-vice wp-child-theme-vice-dhrk dhrk vice-dhrk qw_palette_dark qw-menutype1 vice-body-background-fullscreen qw-is_desktop vice-elementor elementor-default elementor-template-full-width elementor-kit-8 elementor-page elementor-page-802" data-vice-glitch-arrogance="30" data-qwajx="1" data-maincolor="#d5003c" data-jsdebug=""> 260 <div class="vice-theme-container" id="vice-theme-container"> 261 <div class="qw-header-fixed qw-animated vice-menu vice-menu--alternative" id="qwFixedHeader"> 262 <div class="vice-menu__contents"> 263 <a href="https://alekseysavchenko.com/" class="qw_site_logo" id="qwLogo"><img src="https://alekseysavchenko.com/wp-content/uploads/2026/02/logo.png" class="img-responsive" alt="Home"></a> <nav id="viceMenunav" class="vice-menu-horizontal"> 264 <div class="vice-menu-horizontal_c"> 265 <ul id="vice-menubar" class="vice-menubar"> 266 <li id="menu-item-598" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-home menu-item-598"><a href="https://alekseysavchenko.com/">Home</a></li> 267<li id="menu-item-1158" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-1158"><a href="https://alekseysavchenko.com/category/news/">News</a></li> 268<li id="menu-item-1601" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-802 current_page_item menu-item-has-children menu-item-1601"><a href="https://alekseysavchenko.com/about-aleksey-savchenko/" aria-current="page">About</a> 269<ul class="sub-menu"> 270 <li id="menu-item-1536" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1536"><a href="https://alekseysavchenko.com/books/">Books</a></li> 271</ul> 272</li> 273<li id="menu-item-1372" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1372"><a href="https://alekseysavchenko.com/world-building-fiction-by-aleksey-savchenko/">Fiction</a></li> 274<li id="menu-item-952" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-952"><a href="https://alekseysavchenko.com/breaking-into-the-games-industry/">Games Industry</a></li> 275<li id="menu-item-953" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-953"><a href="https://alekseysavchenko.com/winning-in-the-game-industry-when-youre-neurodivergent/">Neurodiversity</a></li> 276<li id="menu-item-969" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-969"><a href="https://alekseysavchenko.com/media/">Media</a></li> 277<li id="menu-item-979" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-979"><a href="https://alekseysavchenko.com/contact/">Contact</a></li> 278 </ul>
279 </div> 280 </nav> 281 <div class="vice-menu__icon vice-menu__icon--desktop "> 282 <a href="#" class="vice-menu-icon" id="qwMenuToggle"> 283 <hr class="vice-menu-icon__a"> 284 <hr class="vice-menu-icon__b"> 285 <hr class="vice-menu-icon__c"> 286</a> </div> 287 <div class="vice-menu__functions"> 288 <div class="vice-sharepage-top"> 289 <a href="#" class="qw-shareall" id="qwShareall" data-toggleclass="open" data-target="qwShareallC" data-toggleclass2="hidden-xs" data-target2="qwLogo"> 290 <span class="qticon-share"></span> 291 </a> 292 <div class="qw-sharepage-top qw-animated vice-sharepage-top__contents" id="qwShareallC"> 293 <div class="vice-sharepage-top__contents__inner"> 294 <a href="#" data-type="twitter" 295 data-url="https://alekseysavchenko.com/about-aleksey-savchenko/" 296 data-description="About Aleksey Savchenko Learn how a celebrated career in the games industry inspired Aleksey to develop his own creative universe About Aleksey Savchenko Originally from Ukraine but now based in the UK, Aleksey Savchenko is an author, futurist, â¦" 297 data-via="" 298 data-media="" 299 class="prettySocial" ><span class="qticon-twitter"></span></a> 300 301 <a href="#" id="qtFacebookShareButton" 302 data-type="facebook" 303 data-url="https://alekseysavchenko.com/about-aleksey-savchenko/" 304 data-description="About Aleksey Savchenko Learn how a celebrated career in the games industry inspired Aleksey to develop his own creative universe About Aleksey Savchenko Originally from Ukraine but now based in the UK, Aleksey Savchenko is an author, futurist, â¦" 305 data-media="" 306 class="prettySocial"><span class="qticon-facebook"></span></a> 307 308 <a href="#" data-type="pinterest" 309 data-url="https://alekseysavchenko.com/about-aleksey-savchenko/" 310 data-description="About Aleksey Savchenko Learn how a celebrated career in the games industry inspired Aleksey to develop his own creative universe About Aleksey Savchenko Originally from Ukraine but now based in the UK, Aleksey Savchenko is an author, futurist, â¦" 311 class="prettySocial" data-media="" ><span class="qticon-pinterest"></span></a> 312 </div> 313 314 </div> 315</div> </div> 316 </div> 317</div> 318<div id="nav"> 319 <div class="qw-scroller"> 320 <div class="qw-menucontainer"> 321 <a href="https://alekseysavchenko.com/" class="qw_site_logo" id="qwLogo"><img src="https://alekseysavchenko.com/wp-content/uploads/2026/02/ALEKSEY-SAVCHENKO.png" class="img-responsive" alt="Home"></a><ul id="qwtoggle" class="qw-sidebarmenu toggle"><li id="menu-item-1677" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-home menu-item-1677"><a href="https://alekseysavchenko.com/">Home</a></li> 322<li id="menu-item-1682" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1682"><a href="https://alekseysavchenko.com/news-about-aleksey-savchenko/">News</a></li> 323<li id="menu-item-1678" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-802 current_page_item menu-item-1678"><a href="https://alekseysavchenko.com/about-aleksey-savchenko/" aria-current="page">About</a></li> 324<li id="menu-item-1685" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1685"><a href="https://alekseysavchenko.com/books/">Books</a></li> 325<li id="menu-item-1684" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1684"><a href="https://alekseysavchenko.com/world-building-fiction-by-aleksey-savchenko/">World-Building: Fiction by Aleksey Savchenko</a></li> 326<li id="menu-item-1679" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1679"><a href="https://alekseysavchenko.com/breaking-into-the-games-industry/">Breaking Into the Games Industry</a></li> 327<li id="menu-item-1683" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1683"><a href="https://alekseysavchenko.com/winning-in-the-game-industry-when-youre-neurodivergent/">Winning in the Game Industry When Youâre Neurodivergent</a></li> 328<li id="menu-item-1681" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1681"><a href="https://alekseysavchenko.com/media/">Media</a></li> 329<li id="menu-item-1680" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1680"><a href="https://alekseysavchenko.com/contact/">Contact</a></li> 330</ul><div class="dhrk-widgets-bar"><aside id="search-1" class="dhrk-widget widget widget_search"><section class="dhrk-widget-header"><span class="vice-separator vice-separator--number"><span>Search</span></span></section><!-- /form widget--> 331<form method="get" class="form-horizontal" action="https://alekseysavchenko.com/" role="search"> 332 333 <input class="" name="s" placeholder="Type and press enter …" type="text" /> 334 335 336</form><!-- /.form-horizontal --> 337</aside></div> 338 <div class="qw-footertext"> 339 <b>© 2026 Aleksey Savchenko. All rights reserved.</b> | 340<a href="https://alekseysavchenko.com/privacy-policy">Privacy Policy</a> | 341<a href="https://alekseysavchenko.com/website-terms-of-use">Website Terms of Use</a> | 342<a href="https://alekseysavchenko.com/cookie-policy-uk">Cookie Policy</a> </div> 343 <div class="qw-socialicons"> 344 <a href="https://www.facebook.com/aleksey.savchenko" class="qw_social" target="_blank"><span class="qticon-facebook"></span></a><a href="https://www.instagram.com/_alekseysav_/" class="qw_social" target="_blank"><span class="qticon-instagram"></span></a><a href="https://www.tiktok.com/@cybersideme" class="qw_social" target="_blank"><span class="qticon-tiktok"></span></a><a href="https://www.youtube.com/@AlexeySavchenko" class="qw_social" target="_blank"><span class="qticon-youtube"></span></a> </div> 345 </div> 346 </div> 347</div> 348 349 <div class="qw-totalcontainer" id="vice-ajaxcontents"> 350 <div class="qw-content-wrapper" id="canvas" > <div data-elementor-type="wp-page" data-elementor-id="802" class="elementor elementor-802"> 351 <div class="elementor-element elementor-element-01be355 e-con-full e-flex e-con e-parent" data-id="01be355" data-element_type="container" data-e-type="container" data-settings="{"background_background":"classic"}"> 352 <div class="elementor-element elementor-element-9d126bc elementor-widget elementor-widget-heading" data-id="9d126bc" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default"> 353 <h1 class="elementor-heading-title elementor-size-default">About Aleksey Savchenko</h1> </div> 354 <div class="elementor-element elementor-element-2a50ffb elementor-widget elementor-widget-text-editor" data-id="2a50ffb" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default"> 355 <p><strong>Learn how a celebrated career in the games industry inspired Aleksey to develop his own creative universe</strong></p> </div>
356 </div> 357 <div class="elementor-element elementor-element-0704f24 e-con-full e-flex e-con e-parent" data-id="0704f24" data-element_type="container" data-e-type="container"> 358 <div class="elementor-element elementor-element-6678367 e-con-full e-flex e-con e-child" data-id="6678367" data-element_type="container" data-e-type="container" data-settings="{"background_background":"classic"}"> 359 <div class="elementor-element elementor-element-be648fe elementor-widget elementor-widget-image" data-id="be648fe" data-element_type="widget" data-e-type="widget" data-widget_type="image.default"> 360 <img fetchpriority="high" decoding="async" width="1333" height="2000" src="https://alekseysavchenko.com/wp-content/uploads/2026/03/Aleksey_Savchanko_about_2.jpg" class="attachment-full size-full wp-image-814" alt="Games developer and author Aleksey Savchenko" srcset="https://alekseysavchenko.com/wp-content/uploads/2026/03/Aleksey_Savchanko_about_2.jpg 1333w, https://alekseysavchenko.com/wp-content/uploads/2026/03/Aleksey_Savchanko_about_2-200x300.jpg 200w, https://alekseysavchenko.com/wp-content/uploads/2026/03/Aleksey_Savchanko_about_2-682x1024.jpg 682w, https://alekseysavchenko.com/wp-content/uploads/2026/03/Aleksey_Savchanko_about_2-768x1152.jpg 768w, https://alekseysavchenko.com/wp-content/uploads/2026/03/Aleksey_Savchanko_about_2-1024x1536.jpg 1024w, https://alekseysavchenko.com/wp-content/uploads/2026/03/Aleksey_Savchanko_about_2-400x600.jpg 400w" sizes="(max-width: 1333px) 100vw, 1333px" /> </div> 361 </div> 362 <div class="elementor-element elementor-element-5fb3a51 e-con-full e-flex e-con e-child" data-id="5fb3a51" data-element_type="container" data-e-type="container"> 363 <div class="elementor-element elementor-element-8f1bba4 elementor-widget elementor-widget-heading" data-id="8f1bba4" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default"> 364 <h2 class="elementor-heading-title elementor-size-default">About Aleksey Savchenko</h2> </div> 365 <div class="elementor-element elementor-element-e99c187 elementor-widget elementor-widget-text-editor" data-id="e99c187" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default"> 366 <p data-start="1173" data-end="1486">Originally from Ukraine but now based in the UK, Aleksey Savchenko is an author, futurist, technology commentator and veteran game developer with more than 26 years in the international games industry. His work spans speculative fiction, mythic fantasy and non-fiction exploring the realities of game development.</p><p data-start="1488" data-end="1803">He studied linguistics and semiotics at the National University of Kyiv-Mohyla Academy in Kyiv, where he also established an early reputation as a writer. He won inter-faculty competitions for original comedy sketches and screenplays, while his poetry appeared in international collections during his student years.</p><p data-start="1805" data-end="2368">While still at university, he began contributing to gaming magazines. Games had been part of Alekseyâs life since childhood â initially as escape, but soon as obsession. Alongside literature and creative writing, he became fascinated by the combination of storytelling, systems and interactive worlds that games could offer. As Ukraineâs late-1990s PC gaming scene expanded, he began designing his own concepts, assembling small development teams with friends in his hometown of Donetsk, and gradually moving into professional game design and world-building work.</p> </div> 367 </div> 368 </div> 369 <div class="elementor-element elementor-element-1bdf0b7 e-flex e-con-boxed e-con e-parent" data-id="1bdf0b7" data-element_type="container" data-e-type="container"> 370 <div class="e-con-inner"> 371 <div class="elementor-element elementor-element-13658bf elementor-widget elementor-widget-testimonial" data-id="13658bf" data-element_type="widget" data-e-type="widget" data-widget_type="testimonial.default"> 372 <div class="elementor-testimonial-wrapper"> 373 <div class="elementor-testimonial-content"><b><i>âSavchenko is a born storyteller with the nerve to take on big ideas head-on â and pull them off. A unique, unmissable talent.â</i></b></div> 374 375 <div class="elementor-testimonial-meta elementor-has-image elementor-testimonial-image-position-aside"> 376 <div class="elementor-testimonial-meta-inner"> 377 <div class="elementor-testimonial-image"> 378 <img decoding="async" width="300" height="300" src="https://alekseysavchenko.com/wp-content/uploads/2026/04/1d-UE_B_400x400.png" class="attachment-full size-full wp-image-1314" alt="" srcset="https://alekseysavchenko.com/wp-content/uploads/2026/04/1d-UE_B_400x400.png 300w, https://alekseysavchenko.com/wp-content/uploads/2026/04/1d-UE_B_400x400-150x150.png 150w, https://alekseysavchenko.com/wp-content/uploads/2026/04/1d-UE_B_400x400-250x250.png 250w" sizes="(max-width: 300px) 100v
378w, 300px" /> </div> 379 380 <div class="elementor-testimonial-details"> 381 <div class="elementor-testimonial-name">John Ward</div> 382 <div class="elementor-testimonial-job">Daily Express</div> 383 </div> 384 </div> 385 </div> 386 </div> 387 </div> 388 </div> 389 </div> 390 <div class="elementor-element elementor-element-6aa298e e-flex e-con-boxed e-con e-parent" data-id="6aa298e" data-element_type="container" data-e-type="container"> 391 <div class="e-con-inner"> 392 <div class="elementor-element elementor-element-fd12c41 e-con-full e-flex e-con e-child" data-id="fd12c41" data-element_type="container" data-e-type="container"> 393 <div class="elementor-element elementor-element-ea0741e elementor-widget elementor-widget-heading" data-id="ea0741e" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default"> 394 <h2 class="elementor-heading-title elementor-size-default">From Page to System</h2> </div> 395 <div class="elementor-element elementor-element-fb41053 elementor-widget elementor-widget-text-editor" data-id="fb41053" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default"> 396 <p>Aleksey began his professional career in Ukraineâs games industry before later working across international studios and development teams, including roles connected to GSC Game World and Epic Games. Over more than two decades in the industry, he has worked across world-building, production, licensing and studio leadership, contributing to more than a dozen released titles, including <em>Fortnite</em> and <em>S.T.A.L.K.E.R. 2</em>.</p><p>Alongside development work, Aleksey has helped build international partnerships across the European games sector and played a role in expanding relationships between Unreal Engine and developers across Eastern Europe. His wider work has included collaborations and projects connected to companies such as Square Enix, 2K and 505 Games. He is also a BAFTA member and has spoken at international industry events including Game Developers Conference and Gamescom.</p><p>He now writes from inside that environment to help the next generation of professionals to thrive in the games industry.</p> </div> 397 <div class="elementor-element elementor-element-3fde530 elementor-widget elementor-widget-vice-elementor-button" data-id="3fde530" data-element_type="widget" data-e-type="widget" data-widget_type="vice-elementor-button.default"> 398 <div class="elementor-widget-container"> 399 <p class="aligncenter"><a href="https://alekseysavchenko.com/breaking-into-the-games-industry/" class="btn vice-btn vice-btn--aligncenter "><span>Learn More</span></a></p> </div> 400 </div> 401 </div> 402 <div class="elementor-element elementor-element-b04a4d8 e-con-full e-flex e-con e-child" data-id="b04a4d8" data-element_type="container" data-e-type="container"> 403 <div class="elementor-element elementor-element-e0ae684 elementor-widget elementor-widget-image" data-id="e0ae684" data-element_type="widget" data-e-type="widget" data-widget_type="image.default"> 404 <img decoding="async" width="530" height="796" src="https://alekseysavchenko.com/wp-content/uploads/2026/03/Aleksey-Savchanko-016-1-682x1024.jpg" class="attachment-large size-large wp-image-1074" alt="" srcset="https://alekseysavchenko.com/wp-content/uploads/2026/03/Aleksey-Savchanko-016-1-682x1024.jpg 682w, https://alekseysavchenko.com/wp-content/uploads/2026/03/Aleksey-Savchanko-016-1-200x300.jpg 200w, https://alekseysavchenko.com/wp-content/uploads/2026/03/Aleksey-Savchanko-016-1-768x1152.jpg 768w, https://alekseysavchenko.com/wp-content/uploads/2026/03/Aleksey-Savchanko-016-1-1024x1536.jpg 1024w, https://alekseysavchenko.com/wp-content/uploads/2026/03/Aleksey-Savchanko-016-1-400x600.jpg 400w, https://alekseysavchenko.com/wp-content/uploads/2026/03/Aleksey-Savchanko-016-1.jpg 1333w" sizes="(max-width: 530px) 100vw, 530px" /> </div> 405 </div> 406 </div> 407 </div> 408 <div class="elementor-element elementor-element-66b3ec7 e-flex e-con-boxed e-con e-parent" data-id="66b3ec7" data-element_type="container" data-e-type="container"> 409 <div class="e-con-inner"> 410 <div class="elementor-element elementor-element-7ede5a1 elementor-widget-divider--view-line elementor-widget elementor-widget-divider" data-id="7ede5a1" data-element_type="widget" data-e-type="widget" data-widget_type="divider.default"> 411 <div class="elementor-divider"> 412 <span class="elementor-divider-separator"> 413 </span> 414 </div> 415 </div> 416 </div>
417 </div> 418 <div class="elementor-element elementor-element-034b478 e-flex e-con-boxed e-con e-parent" data-id="034b478" data-element_type="container" data-e-type="container"> 419 <div class="e-con-inner"> 420 <div class="elementor-element elementor-element-17f3cf2 e-con-full e-flex e-con e-child" data-id="17f3cf2" data-element_type="container" data-e-type="container"> 421 <div class="elementor-element elementor-element-2732332 elementor-widget elementor-widget-image" data-id="2732332" data-element_type="widget" data-e-type="widget" data-widget_type="image.default"> 422 <img loading="lazy" decoding="async" width="1000" height="1491" src="https://alekseysavchenko.com/wp-content/uploads/2026/03/Cyberside-Level-Zero-by-Aleksey-Savchenko-front-cover.jpg" class="attachment-full size-full wp-image-839" alt="Cyberside: Level Zero by Aleksey Savchenko" srcset="https://alekseysavchenko.com/wp-content/uploads/2026/03/Cyberside-Level-Zero-by-Aleksey-Savchenko-front-cover.jpg 1000w, https://alekseysavchenko.com/wp-content/uploads/2026/03/Cyberside-Level-Zero-by-Aleksey-Savchenko-front-cover-201x300.jpg 201w, https://alekseysavchenko.com/wp-content/uploads/2026/03/Cyberside-Level-Zero-by-Aleksey-Savchenko-front-cover-687x1024.jpg 687w, https://alekseysavchenko.com/wp-content/uploads/2026/03/Cyberside-Level-Zero-by-Aleksey-Savchenko-front-cover-768x1145.jpg 768w, https://alekseysavchenko.com/wp-content/uploads/2026/03/Cyberside-Level-Zero-by-Aleksey-Savchenko-front-cover-402x600.jpg 402w" sizes="(max-width: 1000px) 100vw, 1000px" /> </div> 423 <div class="elementor-element elementor-element-bf88ae3 elementor-widget elementor-widget-text-editor" data-id="bf88ae3" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default"> 424 <p><em>ââA masterclass in speculative fiction, blending insider knowledge of the gaming industry with profound insights into corporate ambition and technological evolution. Utterly unputdownable.”</em>â</p> </div> 425 <div class="elementor-element elementor-element-80295e5 elementor-widget elementor-widget-text-editor" data-id="80295e5" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default"> 426 <p><em><strong>Chris Riches, Daily Express</strong></em></p> </div> 427 </div> 428 <div class="elementor-element elementor-element-f3f3bc7 e-con-full e-flex e-con e-child" data-id="f3f3bc7" data-element_type="container" data-e-type="container"> 429 <div class="elementor-element elementor-element-512a14c elementor-widget elementor-widget-heading" data-id="512a14c" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default"> 430 <h2 class="elementor-heading-title elementor-size-default">Fiction and Non-Fiction</h2> </div> 431 <div class="elementor-element elementor-element-93b42cc elementor-widget elementor-widget-text-editor" data-id="93b42cc" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default"> 432 <p data-start="687" data-end="1035"><em data-start="687" data-end="707">Game as a Business</em> by Aleksey Savchenko is designed to help readers break into the games industry, explaining from the inside how it really operates and covering everything from production, leadership and publishing to studio structure, international partnerships and the operational realities behind building and sustaining a successful company.</p><p data-start="1037" data-end="1456">Alongside this, Aleksey has written <em data-start="1073" data-end="1095">Method to My Madness</em> to help neurodivergent professionals navigate the realities of the modern games industry. Drawing on his own experience with AuDHD, the book explores executive dysfunction, burnout, instability, overextension, communication, career volatility and the personal systems people build to keep functioning inside fast-moving creative and technological environments.</p><p data-start="1458" data-end="1723">In fiction, Alekseyâs critically acclaimed Cyberside series draws on many of the same themes through dystopian science fiction, exploring artificial intelligence, corporate power, technological dependency and systemic collapse across a multi-generational narrative.</p><p data-start="1725" data-end="1885">His <em data-start="1729" data-end="1741">The Answer</em> series, meanwhile, moves in a more allegorical and mythic direction, following one manâs metaphysical search for meaning, identity and purpose.</p><p data-start="1887" data-end="1944">You can learn more about books by Aleksey Savchenko <a href="https://alekseysavchenko.com/books/" target="_blank" rel="noopener">here</a>.</p> </div>
433 </div> 434 </div> 435 </div> 436 </div> 437 <div class="vice-footerwidgets"> 438 <div class="dhrk-footerwidgets"> 439 <div class="dhrk-container"> 440 441<div class="container"> 442 <div class="row"> 443 <div class="col-md-3"> 444 <aside id="text-2" class="dhrk-widget widget widget_text"><section class="dhrk-widget-header"><span class="vice-separator vice-separator--number"><span>ABOUT ALEKSEY SAVCHENKO</span></span></section> <div class="textwidget"><p><i>Author Aleksey Savchenko is a BAFTA member and veteran game developer who has worked on major titles including S.T.A.L.K.E.R. 2. His fiction writing includes The Answer and Cyberside series, while his non-fiction work includes Method to my Madness and Game as Business. Born in Ukraine, he is now based in the UK.</i></p> 445</div> 446 </aside> </div> 447 <div class="col-md-3"> 448 <aside id="nav_menu-2" class="dhrk-widget widget widget_nav_menu"><section class="dhrk-widget-header"><span class="vice-separator vice-separator--number"><span>NAVIGATION</span></span></section><div class="menu-footer-menu-container"><ul id="menu-footer-menu" class="menu"><li id="menu-item-1177" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-home menu-item-1177"><a href="https://alekseysavchenko.com/">Home</a></li> 449<li id="menu-item-1178" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-802 current_page_item menu-item-1178"><a href="https://alekseysavchenko.com/about-aleksey-savchenko/" aria-current="page">About</a></li> 450<li id="menu-item-1180" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1180"><a href="https://alekseysavchenko.com/news-about-aleksey-savchenko/">News</a></li> 451<li id="menu-item-1179" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1179"><a href="https://alekseysavchenko.com/contact/">Contact</a></li> 452</ul></div></aside> </div> 453 <div class="col-md-3"> 454 <aside id="text-3" class="dhrk-widget widget widget_text"><section class="dhrk-widget-header"><span class="vice-separator vice-separator--number"><span>Follow Aleksey Savchenko</span></span></section> <div class="textwidget"><p><a href="https://www.tiktok.com/@cybersideme">TikTok</a></p> 455<p><a href="https://www.facebook.com/aleksey.savchenko">Facebook</a></p> 456<p><a href="https://www.instagram.com/_alekseysav_/">Instagram.com</a></p> 457<p><a href="https://www.youtube.com/@AlexeySavchenko">YouTube</a></p> 458</div> 459 </aside> </div> 460 <div class="col-md-3"> 461 </div> 462 </div> 463</div> 464 465 466 </div> 467 </div> 468 </div> 469 <div class="dhrk-pagefooter"> 470 <p><b>© 2026 Aleksey Savchenko. All rights reserved.</b> | 471<a href="https://alekseysavchenko.com/privacy-policy">Privacy Policy</a> | 472<a href="https://alekseysavchenko.com/website-terms-of-use">Website Terms of Use</a> | 473<a href="https://alekseysavchenko.com/cookie-policy-uk">Cookie Policy</a></p> 474 </div> 475 </div> 476 </div> 477 478<div class="qw-playlist qw-animated" id="qwMusicPlaylist"> 479 <div class="qw-scrollable-playlist" id="qwPlaylistContent"> 480 <table class="table"> 481 <thead> 482 <tr> 483 <th class="text-center">Play</th> 484 <th>Cover</th> 485 <th class="hidden-xs"><span class="line1">Release</span><br>Label</th> 486 <th><span class="line1">Track Title</span><br>Track Authors</th> 487 <th class="text-center hidden-xs">Page</th> 488 <th class="text-center hidden-xs">Buy</th> 489 <th class="text-center hidden-xs">Delete</th> 490 </tr> 491 </thead> 492 <tbody id="qwPlaylistTable" data-archiveradio="https://alekseysavchenko.com/radiochannel/?qw_get_json_data=1" data-archive="https://alekseysavchenko.com/release/?qw_get_json_data=1"> 493 </tbody> 494 </table> 495 </div> 496</div> 497<div class="qw-footer-bar vice-musicplayer qw-animated open hidden" id="QWplayerbar"> 498 <div class="row"> 499 <div class="col-xs-2 col-sm-1 col-md-1 vice-musicplayer__col__play"> 500 <a href="#" class="qw-ui-button qw-player-play qw-hidesstat" data-state="stop" id="qwPlayerPlay" data-mp3="" data-soundmanagerswf="https://alekseysavchenko.com/wp-content/themes/vice/js/soundmanager2.swf"><span class="qticon-play"></span></a> 501 </div> 502 <div class="col-sm-1 col-md-1 hidden-xs text-right" id="qwPlayerCover"> 503 </div> 504 <div class="col-xs-8 col-sm-4 col-md-2 col-lg-3 tracktitle"> 505 <span id="qwPlayerTitle" class="qw-player-title"></span> 506 <span id="qwPlayerAuthor" class="qw-player-author"></span> 507 </div> 508 <div class="col-md-2 hidden-xs hidden-sm text-right" > 509 <div id="qwPlayerBar"> 510 511 </div> 512 </div> 513 <div class="col-sm-2 col-md-2 col-lg-1 hidden-xs qw-footer-bar__volumecontrols"> 514 <a href="#" data-title="Audio and Video volume" data-placement="right" class="qw-ui-button qw-hidesstat qw-tooltip" data-state="1" id="qwPlayerVolume" data-toggleclass="open" data-target="qtVolumeControl"><span class="qticon-volume"></span></a> 515 <a href="#" data-title="Mute / unmute" data-placement="right" class="qw-ui-button qw-hidesstat qw-tooltip" id="qwPlayerVolumeMute" data-toggleclass="hidden" data-target="qwPlayerVolumeMute" data-toggleclass2="hidden" data-target2="qwPlayerVolumeUnmute"><span class="qticon-mute"></span></a> 516 <a href="#" data-title="Mute / unmute" data-placement="right" class="qw-ui-button qw-hidesstat qw-tooltip hidden" id="qwPlayerVolumeUnmute" data-toggleclass="hidden" data-target="qwPlayerVolumeMute" data-toggleclass2="hidden" data-target2="qwPlayerVolumeUnmute"><span class="qticon-music"></span></a> 517 </div> 518 519 <div class="col-md-1 col-sm-1 hidden-xs text-right qw-footer-bar__buy" id="qwTrackBuy"> 520 </div> 521 <div class="col-xs-2 col-sm-3 col-md-3 text-right qw-footer-bar__controls"> 522 <a href="#" class="qw-ui-button hidden-xs qw-player-bw qw-hidesstat" id="qwPlayerPrev"><span class="qticon-skip-backward"></span></a> 523 <a href="#" class="qw-ui-button hidden-xs qw-player-fw qw-hidesstat" id="qwPlayerNext"><span class="qticon-skip-forward"></span></a> 524 <a href="#" class="qw-ui-button qw-playlist-switch qw-hidesstat" id="playlistOpener"><span class="qticon-list"></span></a> 525 </div> 526 <a id="qwHidePl" data-toggleclass="open" data-target="QWplayerbar" data-toggle="tooltip" data-title="Hide Player" data-placement="left" ><span class="glyphicon glyphicon-chevron-up qw-animated"></span></a> 527 </div> 528 <div id="qwUpdatingPlaylist" class="qw-animated">Updating playlist <div class="qw-preloader" id="qwAjaxPreloaderPlaylist"><div class="circle"></div><div class="circle1"></div></div> 529 </div> 530</div> 531 </div> 532 <div id="qtCustomPageBg" class="qt-custombackground"> 533 </div> 534 535 536 537 538 539 540 541
541<script type="speculationrules"> 542{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/vice-dhrk/*","/wp-content/themes/vice/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} 543</script>
543 544 <div id="astroidzStyles" 545 data-astroidz-quantity="125" 546 data-astroidz-glitchPass="" 547 data-astroidz-effectFilm="1" 548 data-astroidz-effectBlur="1" 549 data-astroidz-light0i="1" 550 data-astroidz-light1i="1.7" 551 data-astroidz-light2i="2.6" 552 data-astroidz-light3i="1" 553 data-astroidz-light0="#010101" 554 data-astroidz-light1="#e70331" 555 data-astroidz-light2="#d5003c" 556 data-astroidz-light3="#ffffff" 557 data-astroidz-material1="" 558 data-astroidz-material2=""> 559 </div> 560 561<!-- Consent Management powered by Complianz | GDPR/CCPA Cookie Consent https://wordpress.org/plugins/complianz-gdpr --> 562<div id="cmplz-cookiebanner-container"><div id="cmplz-cookiebanner-1-optin" class="cmplz-cookiebanner cmplz-hidden banner-1 banner-a optin cmplz-bottom-right cmplz-categories-type-view-preferences" aria-modal="true" data-nosnippet="true" role="dialog" aria-live="polite" aria-labelledby="cmplz-header-1-optin" aria-describedby="cmplz-message-1-optin"> 563 <div class="cmplz-header"> 564 <div class="cmplz-logo"></div> 565 <div class="cmplz-title" id="cmplz-header-1-optin">Manage Consent</div> 566 <div class="cmplz-close" tabindex="0" role="button" aria-label="Close dialogue"> 567 <svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="times" class="svg-inline--fa fa-times fa-w-11" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 352 512"><path fill="currentColor" d="M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z"></path></svg> 568 </div> 569 </div> 570 571 <div class="cmplz-divider cmplz-divider-header"></div> 572 <div class="cmplz-body"> 573 <div class="cmplz-message" id="cmplz-message-1-optin">To provide the best experiences, we use technologies like cookies to store and/or access device information. Consenting to these technologies will allow us to process data such as browsing behaviour or unique IDs on this site. Not consenting or withdrawing consent, may adversely affect certain features and functions.</div> 574 <!-- categories start --> 575 <div class="cmplz-categories"> 576 <div class="cmplz-category cmplz-functional"> 577 <div class="cmplz-category-header"> 578 <span class="cmplz-category-title" id="cmplz-title-functional-1-optin">Functional</span> 579 <span class='cmplz-always-active'> 580 <span class="cmplz-banner-checkbox"> 581 <input type="checkbox" 582 id="cmplz-functional-optin" 583 data-category="cmplz_functional" 584 class="cmplz-consent-checkbox cmplz-functional" 585 size="40" 586 value="1"/> 587 <label class="cmplz-label" for="cmplz-functional-optin"><span class="screen-reader-text">Functional</span></label> 588 </span> 589 Always active </span> 590 <button class="cmplz-category-toggle" 591 aria-expanded="false" 592 aria-controls="cmplz-desc-functional-1-optin" 593 aria-labelledby="cmplz-title-functional-1-optin"> 594 <span class="cmplz-icon cmplz-open"> 595 <svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" height="18"><path d="M224 416c-8.188 0-16.38-3.125-22.62-9.375l-192-192c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L224 338.8l169.4-169.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-192 192C240.4 412.9 232.2 416 224 416z"/></svg> 596 </span> 597 </button> 598 </div> 599 <div class="cmplz-description" id="cmplz-desc-functional-1-optin" hidden> 600 <span class="cmplz-description-functional">The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.</span> 601 </div> 602 </div> 603 604 <div class="cmplz-category cmplz-preferences"> 605 <div class="cmplz-category-header"> 606 <span class="cmplz-category-title" id="cmplz-title-preferences-1-optin">Preferences</span> 607 <span class="cmplz-banner-checkbox"> 608 <input type="checkbox" 609 id="cmplz-preferences-optin" 610 data-category="cmplz_preferences" 611 class="cmplz-consent-checkbox cmplz-preferences" 612 size="40" 613 value="1"/> 614 <label class="cmplz-label" for="cmplz-preferences-optin"><span class="screen-reader-text">Preferences</span></label> 615 </span> 616 <button class="cmplz-category-toggle" 617 aria-expanded="false" 618 aria-controls="cmplz-desc-preferences-1-optin" 619 aria-labelledby="cmplz-title-preferences-1-optin"> 620 <span class="cmplz-icon cmplz-open"> 621 <svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" height="18">
621<path d="M224 416c-8.188 0-16.38-3.125-22.62-9.375l-192-192c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L224 338.8l169.4-169.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-192 192C240.4 412.9 232.2 416 224 416z"/></svg> 622 </span> 623 </button> 624 </div> 625 <div class="cmplz-description" id="cmplz-desc-preferences-1-optin" hidden> 626 <span class="cmplz-description-preferences">The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.</span> 627 </div> 628 </div> 629 630 <div class="cmplz-category cmplz-statistics"> 631 <div class="cmplz-category-header"> 632 <span class="cmplz-category-title" id="cmplz-title-statistics-1-optin">Statistics</span> 633 <span class="cmplz-banner-checkbox"> 634 <input type="checkbox" 635 id="cmplz-statistics-optin" 636 data-category="cmplz_statistics" 637 class="cmplz-consent-checkbox cmplz-statistics" 638 size="40" 639 value="1"/> 640 <label class="cmplz-label" for="cmplz-statistics-optin"><span class="screen-reader-text">Statistics</span></label> 641 </span> 642 <button class="cmplz-category-toggle" 643 aria-expanded="false" 644 aria-controls="cmplz-desc-statistics-1-optin" 645 aria-labelledby="cmplz-title-statistics-1-optin"> 646 <span class="cmplz-icon cmplz-open"> 647 <svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" height="18"><path d="M224 416c-8.188 0-16.38-3.125-22.62-9.375l-192-192c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L224 338.8l169.4-169.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-192 192C240.4 412.9 232.2 416 224 416z"/></svg> 648 </span> 649 </button> 650 </div> 651 <div class="cmplz-description" id="cmplz-desc-statistics-1-optin" hidden> 652 <span class="cmplz-description-statistics">The technical storage or access that is used exclusively for statistical purposes.</span> 653 <span class="cmplz-description-statistics-anonymous">The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.</span> 654 </div> 655 </div> 656 657 <div class="cmplz-category cmplz-marketing"> 658 <div class="cmplz-category-header"> 659 <span class="cmplz-category-title" id="cmplz-title-marketing-1-optin">Marketing</span> 660 <span class="cmplz-banner-checkbox"> 661 <input type="checkbox" 662 id="cmplz-marketing-optin" 663 data-category="cmplz_marketing" 664 class="cmplz-consent-checkbox cmplz-marketing" 665 size="40" 666 value="1"/> 667 <label class="cmplz-label" for="cmplz-marketing-optin"><span class="screen-reader-text">Marketing</span></label> 668 </span> 669 <button class="cmplz-category-toggle" 670 aria-expanded="false" 671 aria-controls="cmplz-desc-marketing-1-optin" 672 aria-labelledby="cmplz-title-marketing-1-optin"> 673 <span class="cmplz-icon cmplz-open"> 674 <svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" height="18"><path d="M224 416c-8.188 0-16.38-3.125-22.62-9.375l-192-192c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L224 338.8l169.4-169.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-192 192C240.4 412.9 232.2 416 224 416z"/></svg> 675 </span> 676 </button> 677 </div> 678 <div class="cmplz-description" id="cmplz-desc-marketing-1-optin" hidden> 679 <span class="cmplz-description-marketing">The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.</span> 680 </div> 681 </div> 682 </div><!-- categories end --> 683 </div> 684 685 <div class="cmplz-links cmplz-information"> 686 <ul> 687 <li><a class="cmplz-link cmplz-manage-options cookie-statement" href="#" data-relative_url="#cmplz-manage-consent-container">Manage options</a></li> 688 <li><a class="cmplz-link cmplz-manage-third-parties cookie-statement" href="#" data-relative_url="#cmplz-cookie
688s-overview">Manage services</a></li> 689 <li><a class="cmplz-link cmplz-manage-vendors tcf cookie-statement" href="#" data-relative_url="#cmplz-tcf-wrapper">Manage {vendor_count} vendors</a></li> 690 <li><a class="cmplz-link cmplz-external cmplz-read-more-purposes tcf" target="_blank" rel="noopener noreferrer nofollow" href="https://cookiedatabase.org/tcf/purposes/" aria-label="Read more about TCF purposes on Cookie Database">Read more about these purposes</a></li> 691 </ul> 692 </div> 693 694 <div class="cmplz-divider cmplz-footer"></div> 695 696 <div class="cmplz-buttons"> 697 <button class="cmplz-btn cmplz-accept">Accept</button> 698 <button class="cmplz-btn cmplz-deny">Deny</button> 699 <button class="cmplz-btn cmplz-view-preferences">View preferences</button> 700 <button class="cmplz-btn cmplz-save-preferences">Save preferences</button> 701 <a class="cmplz-btn cmplz-manage-options tcf cookie-statement" href="#" data-relative_url="#cmplz-manage-consent-container">View preferences</a> 702 </div> 703 704 705 <div class="cmplz-documents cmplz-links"> 706 <ul> 707 <li><a class="cmplz-link cookie-statement" href="#" data-relative_url="">{title}</a></li> 708 <li><a class="cmplz-link privacy-statement" href="#" data-relative_url="">{title}</a></li> 709 <li><a class="cmplz-link impressum" href="#" data-relative_url="">{title}</a></li> 710 </ul> 711 </div> 712</div> 713</div> 714 <div id="cmplz-manage-consent" data-nosnippet="true"><button class="cmplz-btn cmplz-hidden cmplz-manage-consent manage-consent-1" aria-haspopup="dialog" aria-controls="cmplz-cookiebanner-1-optin">Manage consent</button> 715 716</div>
716<script id='kirki-viewport-lists'>var kirkiViewports = {"md":{"value":1200,"scale":1,"minWidth":1200,"maxWidth":1200,"title":"Desktop","icon":"desktop","activeIcon":"desktop-hover","id":"md","type":"max"},"tablet":{"value":991,"scale":1,"minWidth":991,"maxWidth":991,"title":"Tablet","icon":"tablet-default","activeIcon":"tablet-hover","type":"max","id":"tablet"},"mobileLandscape":{"value":767,"scale":1,"minWidth":767,"maxWidth":767,"title":"Landscape","icon":"phone-hr-default","activeIcon":"phone-hr-hover","type":"max","id":"mobileLandscape"},"mobile":{"value":575,"scale":1,"minWidth":575,"maxWidth":575,"title":"Mobile","icon":"phone-vr-default","activeIcon":"phone-vr-hover","type":"max","id":"mobile"}};</script>
716<script id='kirki-variable-lists'>var kirkiCSSVariable = {"data":[{"title":"Colors","key":"color","modes":[{"title":"Default","key":"default"}],"variables":[]},{"title":"Numbers","key":"size","modes":[{"title":"Default","key":"default"}],"variables":[]},{"title":"Text Styles","key":"text-style","modes":[{"title":"Default","key":"default"}],"variables":[]},{"title":"Font Family","key":"font-family","modes":[{"title":"Default","key":"default"}],"variables":[]}]};</script>
716<script id="kirki-api-and-nonce"> 717 window.wp_kirki = { 718 ajaxUrl: "https://alekseysavchenko.com/wp-admin/admin-ajax.php", 719 restUrl: "https://alekseysavchenko.com/wp-json/", 720 siteUrl: "https://alekseysavchenko.com", 721 apiVersion: "v1", 722 postId: "802", 723 nonce: "b06f514d06", 724 call_from: "", 725 templateId: "", 726 context: {"id":802,"type":"post"} 727 }; 728 </script>
728 <div class="vice-social-footer"> 729 <a href="https://www.facebook.com/aleksey.savchenko" class="qw_social" target="_blank"><span class="qticon-facebook"></span></a><a href="https://www.instagram.com/_alekseysav_/" class="qw_social" target="_blank"><span class="qticon-instagram"></span></a><a href="https://www.tiktok.com/@cybersideme" class="qw_social" target="_blank"><span class="qticon-tiktok"></span></a><a href="https://www.youtube.com/@AlexeySavchenko" class="qw_social" target="_blank"><span class="qticon-youtube"></span></a> </div> 730 <div class="hidden" id="enableRsAjax" data-nnc="ef59854d61" data-admu="https://alekseysavchenko.com/wp-admin/admin-ajax.php"></div> 731
731<script> 732 ( () => { 733 const lazyloadRunObserver = () => { 734 const lazyloadBackgrounds = document.querySelectorAll( `.e-con.e-parent:not(.e-lazyloaded)` ); 735 const lazyloadBackgroundObserver = new IntersectionObserver( ( entries ) => { 736 entries.forEach( ( entry ) => { 737 if ( entry.isIntersecting ) { 738 let lazyloadBackground = entry.target; 739 if( lazyloadBackground ) { 740 lazyloadBackground.classList.add( 'e-lazyloaded' ); 741 } 742 lazyloadBackgroundObserver.unobserve( entry.target ); 743 } 744 }); 745 }, { rootMargin: '200px 0px 200px 0px' } ); 746 lazyloadBackgrounds.forEach( ( lazyloadBackground ) => { 747 lazyloadBackgroundObserver.observe( lazyloadBackground ); 748 } ); 749 }; 750 const events = [ 751 'DOMContentLoaded', 752 'elementor/lazyload/observe', 753 ]; 754 events.forEach( ( event ) => { 755 document.addEventListener( event, lazyloadRunObserver ); 756 } ); 757 } )(); 758 </script>
758 759
759<script id="imagesloaded-js" src="https://alekseysavchenko.com/wp-includes/js/imagesloaded.min.js?ver=5.0.0"></script>
vendor: 1 bytes, line 759
759
760<script id="masonry-js" src="https://alekseysavchenko.com/wp-includes/js/masonry.min.js?ver=4.2.2"></script>
vendor: 1 bytes, line 760
760
761<script id="owl-carousel-js" src="https://alekseysavchenko.com/wp-content/plugins/vice-elementor/assets/components/owl-carousel/dist/owl.carousel-min.js?ver=2.3.2"></script>
vendor: 1 bytes, line 761
761
762<script id="vice-extend-js" src="https://alekseysavchenko.com/wp-content/plugins/vice-elementor/assets/js/extend.js?ver=1770917590"></script>
vendor: 1 bytes, line 762
762
763<script id="threeJs-js" src="https://alekseysavchenko.com/wp-content/plugins/astroidz/assets/three/three.min.js?ver=1.0.2"></script>
vendor: 1 bytes, line 763
763
764<script id="CopyShader-js" src="https://alekseysavchenko.com/wp-content/plugins/astroidz/assets/js/shaders/CopyShader.js?ver=1.0.2"></script>
vendor: 1 bytes, line 764
764
765<script id="DigitalGlitch-js" src="https://alekseysavchenko.com/wp-content/plugins/astroidz/assets/js/shaders/DigitalGlitch.js?ver=1.0.2"></script>
vendor: 1 bytes, line 765
765
766<script id="EffectComposer-js" src="https://alekseysavchenko.com/wp-content/plugins/astroidz/assets/js/postprocessing/EffectComposer.js?ver=1.0.2"></script>
vendor: 1 bytes, line 766
766
767<script id="RenderPass-js" src="https://alekseysavchenko.com/wp-content/plugins/astroidz/assets/js/postprocessing/RenderPass.js?ver=1.0.2"></script>
vendor: 1 bytes, line 767
767
768<script id="FilmShader-js" src="https://alekseysavchenko.com/wp-content/plugins/astroidz/assets/js/shaders/FilmShader.js?ver=1.0.2"></script>
vendor: 1 bytes, line 768
768
769<script id="RGBShiftShader-js" src="https://alekseysavchenko.com/wp-content/plugins/astroidz/assets/js/shaders/RGBShiftShader.js?ver=1.0.2"></script>
vendor: 1 bytes, line 769
769
770<script id="HorizontalBlurShader-js" src="https://alekseysavchenko.com/wp-content/plugins/astroidz/assets/js/shaders/HorizontalBlurShader.js?ver=1.0.2"></script>
vendor: 1 bytes, line 770
770
771<script id="VerticalBlurShader-js" src="https://alekseysavchenko.com/wp-content/plugins/astroidz/assets/js/shaders/VerticalBlurShader.js?ver=1.0.2"></script>
vendor: 1 bytes, line 771
771
772<script id="FilmPass-js" src="https://alekseysavchenko.com/wp-content/plugins/astroidz/assets/js/postprocessing/FilmPass.js?ver=1.0.2"></script>
vendor: 1 bytes, line 772
772
773<script id="MaskPass-js" src="https://alekseysavchenko.com/wp-content/plugins/astroidz/assets/js/postprocessing/MaskPass.js?ver=1.0.2"></script>
vendor: 1 bytes, line 773
773
774<script id="ShaderPass-js" src="https://alekseysavchenko.com/wp-content/plugins/astroidz/assets/js/postprocessing/ShaderPass.js?ver=1.0.2"></script>
vendor: 1 bytes, line 774
774
775<script id="GlitchPass-js" src="https://alekseysavchenko.com/wp-content/plugins/astroidz/assets/js/postprocessing/GlitchPass.js?ver=1.0.2"></script>
vendor: 1 bytes, line 775
775
776<script id="astroidz-js" src="https://alekseysavchenko.com/wp-content/plugins/astroidz/assets/js/astroidz.js?ver=1.0.2"></script>
vendor: 1 bytes, line 776
776
777<script id="wp-hooks-js" src="https://alekseysavchenko.com/wp-includes/js/dist/hooks.min.js?ver=f0f188028580e8dc1255"></script>
vendor: 1 bytes, line 777
777
778<script id="wp-i18n-js" src="https://alekseysavchenko.com/wp-includes/js/dist/i18n.min.js?ver=1dfe7db3940c23ea9216"></script>
vendor: 1 bytes, line 778
778
779<script id="wp-i18n-js-after"> 780wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } ); 781//# sourceURL=wp-i18n-js-after 782</script>
vendor: 1 bytes, line 782
782
783<script id="swv-js" src="https://alekseysavchenko.com/wp-content/plugins/contact-form-7/includes/swv/js/index.js?ver=6.1.7"></script>
vendor: 1 bytes, line 783
783
784<script id="contact-form-7-js-translations"> 785( function( domain, translations ) { 786 var localeData = translations.locale_data[ domain ] || translations.locale_data.messages; 787 localeData[""].domain = domain; 788 wp.i18n.setLocaleData( localeData, domain ); 789} )( "contact-form-7", {"translation-revision-date":"2026-05-05 18:32:38+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n != 1;","lang":"en_GB"},"This contact form is placed in the wrong place.":["This contact form is placed in the wrong place."],"Error:":["Error:"]}},"comment":{"reference":"includes\/js\/index.js"}} ); 790//# sourceURL=contact-form-7-js-translations 791</script>
vendor: 1 bytes, line 791
791
792<script id="contact-form-7-js-before"> 793var wpcf7 = { 794 "api": { 795 "root": "https:\/\/alekseysavchenko.com\/wp-json\/", 796 "namespace": "contact-form-7\/v1" 797 }, 798 "cached": 1 799}; 800//# sourceURL=contact-form-7-js-before 801</script>
vendor: 1 bytes, line 801
801
802<script id="contact-form-7-js" src="https://alekseysavchenko.com/wp-content/plugins/contact-form-7/includes/js/index.js?ver=6.1.7"></script>
vendor: 1 bytes, line 802
802
803<script id="swipebox-js" src="https://alekseysavchenko.com/wp-content/plugins/qt-swipebox/min/qt-swipebox-min.js?ver=7.1.3"></script>
vendor: 1 bytes, line 803
803
804<script id="_s-slimscroll-js" src="https://alekseysavchenko.com/wp-content/themes/vice/js/jquery.slimScroll.js?ver=3.5"></script>
vendor: 1 bytes, line 804
804
805<script id="_s-fullpage-js" src="https://alekseysavchenko.com/wp-content/themes/vice/js/jquery.fullPage.js?ver=3.5"></script>
vendor: 1 bytes, line 805
805
806<script id="_s-libraries-js" src="https://alekseysavchenko.com/wp-content/themes/vice/js/qt-jquerylibraries.js?ver=3.5"></script>
vendor: 1 bytes, line 806
806
807<script id="_s-main-js" src="https://alekseysavchenko.com/wp-content/themes/vice/js/min/qt-main-min.js?ver=3.5"></script>
vendor: 1 bytes, line 807
807
808<script id="elementor-webpack-runtime-js" src="https://alekseysavchenko.com/wp-content/plugins/elementor/assets/js/webpack.runtime.min.js?ver=4.2.4"></script>
vendor: 1 bytes, line 808
808
809<script id="elementor-frontend-modules-js" src="https://alekseysavchenko.com/wp-content/plugins/elementor/assets/js/frontend-modules.min.js?ver=4.2.4"></script>
vendor: 1 bytes, line 809
809
810<script id="jquery-ui-core-js-before"> 811jQuery.uiBackCompat = true; 812//# sourceURL=jquery-ui-core-js-before 813</script>
vendor: 1 bytes, line 813
813
814<script id="jquery-ui-core-js" src="https://alekseysavchenko.com/wp-includes/js/jquery/ui/core.min.js?ver=1.14.2"></script>
vendor: 1 bytes, line 814
814
815<script id="elementor-frontend-js-extra"> 816var EAELImageMaskingConfig = {"svg_dir_url":"https://alekseysavchenko.com/wp-content/plugins/essential-addons-for-elementor-lite/assets/front-end/img/image-masking/svg-shapes/"}; 817//# sourceURL=elementor-frontend-js-extra 818</script>
vendor: 1 bytes, line 818
818
819<script id="elementor-frontend-js-before"> 820var elementorFrontendConfig = {"environmentMode":{"edit":false,"wpPreview":false,"isScriptDebug":false},"i18n":{"shareOnFacebook":"Share on Facebook","shareOnX":"Share on X","pinIt":"Pin it","download":"Download","downloadImage":"Download image","fullscreen":"Fullscreen","zoom":"Zoom","share":"Share","playVideo":"Play Video","previous":"Previous","next":"Next","close":"Close","a11yCarouselPrevSlideMessage":"Previous slide","a11yCarouselNextSlideMessage":"Next slide","a11yCarouselFirstSlideMessage":"This is the first slide","a11yCarouselLastSlideMessage":"This is the last slide","a11yCarouselPaginationBulletMessage":"Go to slide"},"is_rtl":false,"breakpoints":{"xs":0,"sm":480,"md":768,"lg":1025,"xl":1440,"xxl":1600},"responsive":{"breakpoints":{"mobile":{"label":"Mobile Portrait","value":767,"default_value":767,"direction":"max","is_enabled":true},"mobile_extra":{"label":"Mobile Landscape","value":880,"default_value":880,"direction":"max","is_enabled":false},"tablet":{"label":"Tablet Portrait","value":1024,"default_value":1024,"direction":"max","is_enabled":true},"tablet_extra":{"label":"Tablet Landscape","value":1200,"default_value":1200,"direction":"max","is_enabled":false},"laptop":{"label":"Laptop","value":1366,"default_value":1366,"direction":"max","is_enabled":false},"widescreen":{"label":"Widescreen","value":2400,"default_value":2400,"direction":"min","is_enabled":false}},"hasCustomBreakpoints":false},"version":"4.2.4","is_static":false,"experimentalFeatures":{"e_font_icon_svg":true,"additional_custom_breakpoints":true,"container":true,"e_optimized_markup":true,"e_panel_promotions":true,"e_pro_free_trial_popup":true,"nested-elements":true,"global_classes_should_enforce_capabilities":true,"e_variables":true,"e_opt_in_v4_page":true,"e_components":true,"e_interactions":true,"e_widget_creation":true,"import-export-customization":true},"urls":{"assets":"https:\/\/alekseysavchenko.com\/wp-content\/plugins\/elementor\/assets\/","ajaxurl":"https:\/\/alekseysavchenko.com\/wp-admin\/admin-ajax.php","uploadUrl":"https:\/\/alekseysavchenko.com\/wp-content\/uploads"},"nonces":{"floatingButtonsClickTracking":"a5ab380a80","atomicFormsSendForm":"690c5d2d4b"},"swiperClass":"swiper","settings":{"page":[],"editorPreferences":[]},"kit":{"active_breakpoints":["viewport_mobile","viewport_tablet"],"global_image_lightbox":"yes","lightbox_enable_counter":"yes","lightbox_enable_fullscreen":"yes","lightbox_enable_zoom":"yes","lightbox_enable_share":"yes","lightbox_title_src":"title","lightbox_description_src":"description"},"post":{"id":802,"title":"About%20-%20Aleksey%20Savchenko","excerpt":"","featuredImage":false}}; 821var elementorFrontendConfig = {"environmentMode":{"edit":false,"wpPreview":false,"isScriptDebug":false},"i18n":{"shareOnFacebook":"Share on Facebook","shareOnX":"Share on X","pinIt":"Pin it","download":"Download","downloadImage":"Download image","fullscreen":"Fullscreen","zoom":"Zoom","share":"Share","playVideo":"Play Video","previous":"Previous","next":"Next","close":"Close","a11yCarouselPrevSlideMessage":"Previous slide","a11yCarouselNextSlideMessage":"Next slide","a11yCarouselFirstSlideMessage":"This is the first slide","a11yCarouselLastSlideMessage":"This is the last slide","a11yCarouselPaginationBulletMessage":"Go to slide"},"is_rtl":false,"breakpoints":{"xs":0,"sm":480,"md":768,"lg":1025,"xl":1440,"xxl":1600},"responsive":{"breakpoints":{"mobile":{"label":"Mobile Portrait","value":767,"default_value":767,"direction":"max","is_enabled":true},"mobile_extra":{"label":"Mobile Landscape","value":880,"default_value":880,"direction":"max","is_enabled":false},"tablet":{"label":"Tablet Portrait","value":1024,"default_value":1024,"direction":"max","is_enabled":true},"tablet_extra":{"label":"Tablet Landscape","value":1200,"default_value":1200,"direction":"max","is_enabled":false},"laptop":{"label":"Laptop","value":1366,"default_value":1366,"direction":"max","is_enabled":false},"widescreen":{"label":"Widescreen","value":2400,"default_value":2400,"direction":"min","is_enabled":false}},"hasCustomBreakpoints":false},"version":"4.2.4","is_static":false,"experimentalFeatures":{"e_font_icon_svg":true,"additional_custom_breakpoints":true,"container":true,"e_optimized_markup":true,"e_panel_promotions":true,"e_pro_free_trial_popup":true,"nested-elements":true,"global_classes_should_enforce_capabilities":true,"e_variables":true,"e_opt_in_v4_page":true,"e_components":true,"e_interactions":true,"e_widget_creation":true,"import-export-customization":true},"urls":{"assets":"https:\/\/alekseysavchenko.com\/wp-content\/plugins\/elementor\/assets\/","ajaxurl":"https:\/\/alekseysavchenko.com\/wp-admin\/admin-ajax.php","uploadUrl":"https:\/\/alekseysavchenko.com\/wp-content\/uploads"},"nonces":{"floatingButtonsClickTracking":"a5ab380a80","atomicFormsSendForm":"690c5d2d4b"},"swiperClass":"swiper","settings":{"page":[],"editorPreferences":[]},"kit":{"active_breakpoints":["viewport_mobile","viewport_tablet"],"global_image_lightbox":"yes","lightbox_enable_counter":"yes","lightbox_enable_fullscreen":"yes","lightbox_enable_zoom":"yes","lightbox_enable_share":"yes","lightbox_title_src":"title","lightbox_description_src":"description"},"post":{"id":802,"title":"About%20-%20Aleksey%20Savchenko","excerpt":"","featuredImage":false}}; 822//# sourceURL=elementor-frontend-js-before 823</script>
vendor: 1 bytes, line 823
823
824<script id="elementor-frontend-js" src="https://alekseysavchenko.com/wp-content/plugins/elementor/assets/js/frontend.min.js?ver=4.2.4"></script>
vendor: 1 bytes, line 824
824
825<script id="eael-general-js-extra"> 826var localize = {"ajaxurl":"https://alekseysavchenko.com/wp-admin/admin-ajax.php","nonce":"6375478ff7","i18n":{"added":"Added ","compare":"Compare","loading":"Loading..."},"eael_translate_text":{"required_text":"is a required field","invalid_text":"Invalid","billing_text":"Billing","shipping_text":"Shipping","fg_mfp_counter_text":"of"},"page_permalink":"https://alekseysavchenko.com/about-aleksey-savchenko/","cart_redirectition":"","cart_page_url":"","el_breakpoints":{"mobile":{"label":"Mobile Portrait","value":767,"default_value":767,"direction":"max","is_enabled":true},"mobile_extra":{"label":"Mobile Landscape","value":880,"default_value":880,"direction":"max","is_enabled":false},"tablet":{"label":"Tablet Portrait","value":1024,"default_value":1024,"direction":"max","is_enabled":true},"tablet_extra":{"label":"Tablet Landscape","value":1200,"default_value":1200,"direction":"max","is_enabled":false},"laptop":{"label":"Laptop","value":1366,"default_value":1366,"direction":"max","is_enabled":false},"widescreen":{"label":"Widescreen","value":2400,"default_value":2400,"direction":"min","is_enabled":false}}}; 827//# sourceURL=eael-general-js-extra 828</script>
vendor: 1 bytes, line 828
828
829<script id="eael-general-js" src="https://alekseysavchenko.com/wp-content/plugins/essential-addons-for-elementor-lite/assets/front-end/js/view/general.min.js?ver=6.8.4"></script>
vendor: 1 bytes, line 829
829
830<script id="cmplz-cookiebanner-js-extra"> 831var complianz = {"prefix":"cmplz_","debug":"","user_banner_id":"1","set_cookies":[],"block_ajax_content":"","banner_version":"13","version":"7.5.5","store_consent":"","do_not_track_enabled":"","consenttype":"optin","region":"uk","geoip":"","dismiss_timeout":"","disable_cookiebanner":"","soft_cookiewall":"","dismiss_on_scroll":"","cookie_expiry":"365","url":"https://alekseysavchenko.com/wp-json/complianz/v1/","locale":"lang=en&locale=en_GB","set_cookies_on_root":"","cookie_domain":"","current_policy_id":"35","cookie_path":"/","categories":{"statistics":"statistics","marketing":"marketing"},"tcf_active":"","placeholdertext":"Click to accept {category} cookies and enable this content","css_file":"https://alekseysavchenko.com/wp-content/uploads/complianz/css/banner-{banner_id}-{type}.css?v=13","page_links":{"uk":{"cookie-statement":{"title":"Cookie Policy ","url":"https://alekseysavchenko.com/cookie-policy-uk/"},"privacy-statement":{"title":"Privacy Policy","url":"https://alekseysavchenko.com/privacy-policy/"}}},"tm_categories":"","forceEnableStats":"","preview":"","clean_cookies":"","aria_label":"Click to accept {category} cookies and enable this content","iapi_nav":"fallback"}; 832//# sourceURL=cmplz-cookiebanner-js-extra 833</script>
vendor: 1 bytes, line 833
833
834<script defer id="cmplz-cookiebanner-js" src="https://alekseysavchenko.com/wp-content/plugins/complianz-gdpr/cookiebanner/js/complianz.min.js?ver=1789646579"></script>
vendor: 1 bytes, line 834
834
835<script id="cmplz-cookiebanner-js-after"> 836 837 if ('undefined' != typeof window.jQuery) { 838 jQuery(document).ready(function ($) { 839 $(document).on('elementor/popup/show', () => { 840 let rev_cats = cmplz_categories.reverse(); 841 for (let key in rev_cats) { 842 if (rev_cats.hasOwnProperty(key)) { 843 let category = cmplz_categories[key]; 844 if (cmplz_has_consent(category)) { 845 document.querySelectorAll('[data-category="' + category + '"]').forEach(obj => { 846 cmplz_remove_placeholder(obj); 847 }); 848 } 849 } 850 } 851 852 let services = cmplz_get_services_on_page(); 853 for (let key in services) { 854 if (services.hasOwnProperty(key)) { 855 let service = services[key].service; 856 let category = services[key].category; 857 if (cmplz_has_service_consent(service, category)) { 858 document.querySelectorAll('[data-service="' + service + '"]').forEach(obj => { 859 cmplz_remove_placeholder(obj); 860 }); 861 } 862 } 863 } 864 }); 865 }); 866 } 867 868 869 870 document.addEventListener("cmplz_enable_category", function(consentData) { 871 var category = consentData.detail.category; 872 var services = consentData.detail.services; 873 var blockedContentContainers = []; 874 let selectorVideo = '.cmplz-elementor-widget-video-playlist[data-category="'+category+'"],.elementor-widget-video[data-category="'+category+'"]'; 875 let selectorGeneric = '[data-cmplz-elementor-href][data-category="'+category+'"]'; 876 for (var skey in services) { 877 if (services.hasOwnProperty(skey)) { 878 let service = skey; 879 selectorVideo +=',.cmplz-elementor-widget-video-playlist[data-service="'+service+'"],.elementor-widget-video[data-service="'+service+'"]'; 880 selectorGeneric +=',[data-cmplz-elementor-href][data-service="'+service+'"]'; 881 } 882 } 883 document.querySelectorAll(selectorVideo).forEach(obj => { 884 let elementService = obj.getAttribute('data-service'); 885 if ( cmplz_is_service_denied(elementService) ) { 886 return; 887 } 888 if (obj.classList.contains('cmplz-elementor-activated')) return; 889 obj.classList.add('cmplz-elementor-activated'); 890 891 if ( obj.hasAttribute('data-cmplz_elementor_widget_type') ){ 892 let attr = obj.getAttribute('data-cmplz_elementor_widget_type'); 893 obj.classList.removeAttribute('data-cmplz_elementor_widget_type'); 894 obj.classList.setAttribute('data-widget_type', attr); 895 } 896 if (obj.classList.contains('cmplz-elementor-widget-video-playlist')) { 897 obj.classList.remove('cmplz-elementor-widget-video-playlist'); 898 obj.classList.add('elementor-widget-video-playlist'); 899 } 900 obj.setAttribute('data-settings', obj.getAttribute('data-cmplz-elementor-settings')); 901 blockedContentContainers.push(obj); 902 }); 903 904 document.querySelectorAll(selectorGeneric).forEach(obj => { 905 let elementService = obj.getAttribute('data-service'); 906 if ( cmplz_is_service_denied(elementService) ) { 907 return; 908 } 909 if (obj.classList.contains('cmplz-elementor-activated')) return; 910 911 if (obj.classList.contains('cmplz-fb-video')) { 912 obj.classList.remove('cmplz-fb-video'); 913 obj.classList.add('fb-video'); 914 } 915 916 obj.classList.add('cmplz-elementor-activated'); 917 obj.setAttribute('data-href', obj.getAttribute('data-cmplz-elementor-href')); 918 blockedContentContainers.push(obj.closest('.elementor-widget')); 919 }); 920 921 /** 922 * Trigger the widgets in Elementor 923 */ 924 for (var key in blockedContentContainers) { 925 if (blockedContentContainers.hasOwnProperty(key) && blockedContentContainers[key] !== undefined) { 926 let blockedContentContainer = blockedContentContainers[key]; 927 if (elementorFrontend.elementsHandler) { 928 elementorFrontend.elementsHandler.runReadyTrigger(blockedContentContainer) 929 } 930 var cssIndex = blockedContentContainer.getAttribute('data-placeholder_class_index'); 931 blockedContentContainer.classList.remove('cmplz-blocked-content-container'); 932 blockedContentContainer.classList.remove('cmplz-placeholder-' + cssIndex); 933 } 934 } 935 936 }); 937 938 939//# sourceURL=cmplz-cookiebanner-js-after 940</script>
vendor: 1 bytes, line 940
940
941<script id="wp-emoji-settings" type="application/json"> 942{"baseUrl":"https://s.w.org/images/core/emoji/17.0.2/72x72/","ext":".png","svgUrl":"https://s.w.org/images/core/emoji/17.0.2/svg/","svgExt":".svg","source":{"concatemoji":"https://alekseysavchenko.com/wp-includes/js/wp-emoji-release.min.js?ver=7.1.3"}} 943</script>
vendor: 1 bytes, line 943
943
944<script type="module"> 945/*! This file is auto-generated */ 946var e="script#wp-emoji-settings",t=document.querySelector(e);if(!(t instanceof HTMLScriptElement))throw new Error("Element missing: "+e);const r=JSON.parse(t.text),s=(window._wpemojiSettings=r,"wpEmojiSettingsSupports"),o=["flag","emoji"];function i(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(s,JSON.stringify(t))}catch(e){}}function c(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0);const r=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);return t.every((e,t)=>e===r[t])}function p(e,t){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var n=e.getImageData(16,16,1,1);for(let e=0;e<n.data.length;e++)if(0!==n.data[e])return!1;return!0}function u(e,t,n,r){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\udde8\ud83c\uddf6","\ud83c\udde8\u200b\ud83c\uddf6")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!r(e,"\ud83e\u1fac8")}return!1}function f(e,t,n,r){let a;const s=(a="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):document.createElement("canvas")).getContext("2d",{willReadFrequently:!0}),o=(s.textBaseline="top",s.font="600 32px Arial",{});return e.forEach(e=>{o[e]=t(s,e,n,r)}),o}function a(e){var t=document.createElement("script");t.src=e,t.defer=!0,document.head.appendChild(t)}r.supports={everything:!0,everythingExceptFlag:!0},new Promise(t=>{let n=function(){try{var e=JSON.parse(sessionStorage.getItem(s));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(o),u.toString(),c.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"});const a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=e=>{i(n=e.data),a.terminate(),t(n)})}catch(e){}i(n=f(o,u,c,p))}t(n)}).then(e=>{for(const n in e)r.supports[n]=e[n],r.supports.everything=r.supports.everything&&r.supports[n],"flag"!==n&&(r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&r.supports[n]);var t;r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&!r.supports.flag,r.supports.everything||((t=r.source||{}).concatemoji?a(t.concatemoji):t.wpemoji&&t.twemoji&&(a(t.twemoji),a(t.wpemoji)))}); 947//# sourceURL=https://alekseysavchenko.com/wp-includes/js/wp-emoji-loader.min.js 948</script>
948 949<!-- Statistics script Complianz GDPR/CCPA --> 950
950<script type="text/plain" data-category="statistics">window['gtag_enable_tcf_support'] = false; 951window.dataLayer = window.dataLayer || []; 952function gtag(){dataLayer.push(arguments);} 953gtag('js', new Date()); 954gtag('config', '', { 955 cookie_flags:'secure;samesite=none', 956 'anonymize_ip': true 957}); 958</script>
958 959 <!-- QT CSS ID 3da33cc79937bb795c5c324bed74ab49 --> </body> 960</html> 961 962 963<!-- Page supported by LiteSpeed Cache 7.9.1 on 2026-10-08 19:48:04 -->
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.