1 2 3<!DOCTYPE html> 4<html lang="en-US"> 5<head> 6 <meta charset="UTF-8"> 7 <meta name="viewport" content="width=device-width, initial-scale=1"> 8 <link rel="profile" href="https://gmpg.org/xfn/11"> 9 <link rel="pingback" href="https://andrejgajdos.com/xmlrpc.php"> 10 11 <meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' /> 12 13 <!-- This site is optimized with the Yoast SEO plugin v28.2 - https://yoast.com/product/yoast-seo-wordpress/ --> 14 <title>Freelance Full-Stack Developer for Hire | Andrej Gajdos</title> 15 <meta name="description" content="Freelance full-stack developer for hire. 10+ years and 20+ projects building custom web apps and websites for startups and businesses." /> 16 <link rel="canonical" href="https://andrejgajdos.com/" /> 17 <meta property="og:locale" content="en_US" /> 18 <meta property="og:type" content="website" /> 19 <meta property="og:title" content="Freelance Full-Stack Developer for Hire | Andrej Gajdos" /> 20 <meta property="og:description" content="Freelance full-stack developer for hire. 10+ years and 20+ projects building custom web apps and websites for startups and businesses." /> 21 <meta property="og:url" content="https://andrejgajdos.com/" /> 22 <meta property="og:site_name" content="Andrej Gajdos" /> 23 <meta property="article:modified_time" content="2026-08-06T17:16:03+00:00" /> 24 <meta property="og:image" content="https://andrejgajdos.com/wp-content/uploads/2021/05/andrej-gajdos-1.jpg" /> 25 <meta property="og:image:width" content="1200" /> 26 <meta property="og:image:height" content="1200" /> 27 <meta property="og:image:type" content="image/jpeg" /> 28 <meta name="twitter:card" content="summary_large_image" /> 29 <meta name="twitter:site" content="@Andrej_Gajdos" /> 30
30<script type="application/ld+json" class="yoast-schema-graph">{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/andrejgajdos.com\/","url":"https:\/\/andrejgajdos.com\/","name":"Freelance Full-Stack Developer for Hire | Andrej Gajdos","isPartOf":{"@id":"https:\/\/andrejgajdos.com\/#website"},"datePublished":"2015-08-19T20:17:28+00:00","dateModified":"2026-08-06T17:16:03+00:00","description":"Freelance full-stack developer for hire. 10+ years and 20+ projects building custom web apps and websites for startups and businesses.","breadcrumb":{"@id":"https:\/\/andrejgajdos.com\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/andrejgajdos.com\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/andrejgajdos.com\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home"}]},{"@type":"WebSite","@id":"https:\/\/andrejgajdos.com\/#website","url":"https:\/\/andrejgajdos.com\/","name":"Andrej Gajdos","description":"Andrej's Personal Blog","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/andrejgajdos.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}</script>
30 31 <!-- / Yoast SEO plugin. --> 32 33 34<link rel='dns-prefetch' href='//secure.gravatar.com' /> 35<link rel='dns-prefetch' href='//www.google.com' /> 36<link rel='dns-prefetch' href='//cdnjs.cloudflare.com' /> 37<link rel='dns-prefetch' href='//fonts.googleapis.com' /> 38<link rel='dns-prefetch' href='//v0.wordpress.com' /> 39<link rel='dns-prefetch' href='//widgets.wp.com' /> 40<link rel='dns-prefetch' href='//s0.wp.com' /> 41<link rel='dns-prefetch' href='//0.gravatar.com' /> 42<link rel='dns-prefetch' href='//1.gravatar.com' /> 43<link rel='dns-prefetch' href='//2.gravatar.com' /> 44<link href='https://fonts.gstatic.com' crossorigin rel='preconnect' /> 45<link rel="alternate" type="application/rss+xml" title="Andrej Gajdos » Feed" href="https://andrejgajdos.com/feed/" /> 46<link rel="alternate" type="application/rss+xml" title="Andrej Gajdos » Comments Feed" href="https://andrejgajdos.com/comments/feed/" /> 47<link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://andrejgajdos.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fandrejgajdos.com%2F" /> 48<link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://andrejgajdos.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fandrejgajdos.com%2F&format=xml" /> 49<style id="wp-img-auto-sizes-contain-inline-css"> 50img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px} 51/*# sourceURL=wp-img-auto-sizes-contain-inline-css */ 52</style> 53<link rel='stylesheet' id='bootstrap-css' href='https://andrejgajdos.com/wp-content/plugins/easy-bootstrap-shortcodes/styles/bootstrap.min.css?ver=7.0.2' media='all' /> 54<link rel='stylesheet' id='bootstrap-fa-icon-css' href='https://andrejgajdos.com/wp-content/plugins/easy-bootstrap-shortcodes/styles/font-awesome.min.css?ver=7.0.2' media='all' /> 55<style id="wp-block-library-inline-css"> 56:root{--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223;--wp-bound-block-color:var(--wp-block-synced-color);--wp-editor-canvas-background:#ddd;--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,160.5;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.wp-element-button{cursor:pointer}:root .has-very-light-gray-background-color{background-color:#eee}:root .has-very-dark-gray-background-color{background-color:#313131}:root .has-very-light-gray-color{color:#eee}:root .has-very-dark-gray-color{color:#313131}:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(135deg,#00d084,#0693e3)}:root .has-purple-crush-gradient-background{background:linear-gradient(135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .has-hazy-dawn-gradient-background{background:linear-gradient(135deg,#faaca8,#dad0ec)}:root .has-subdued-olive-gradient-background{background:linear-gradient(135deg,#fafae1,#67a671)}:root .has-atomic-cream-gradient-background{background:linear-gradient(135deg,#fdd79a,#004a59)}:root .has-nightshade-gradient-background{background:linear-gradient(135deg,#330968,#31cdcf)}:root .has-midnight-gradient-background{background:linear-gradient(135deg,#020381,#2874fc)}:root{--wp--preset--font-size--normal:16px;
56--wp--preset--font-size--huge:42px}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}:root .has-text-align-center{text-align:center}:root .has-text-align-left{text-align:left}:root .has-text-align-right{text-align:right}.has-fit-text{white-space:nowrap!important}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{word-wrap:normal!important;border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.screen-reader-text:focus{background-color:#ddd;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style*=border-color]){border-style:solid}html :where([style*=border-top-color]){border-top-style:solid}html :where([style*=border-right-color]){border-right-style:solid}html :where([style*=border-bottom-color]){border-bottom-style:solid}html :where([style*=border-left-color]){border-left-style:solid}html :where([style*=border-width]){border-style:solid}html :where([style*=border-top-width]){border-top-style:solid}html :where([style*=border-right-width]){border-right-style:solid}html :where([style*=border-bottom-width]){border-bottom-style:solid}html :where([style*=border-left-width]){border-left-style:solid}html :where(img[class*=wp-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:var(--wp-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:0px}} 57 58/*# sourceURL=/wp-includes/css/dist/block-library/common.min.css */ 59</style> 60<style id="wp-block-library-inline-css-extra"> 61.has-text-align-justify{text-align:justify;} 62/*# sourceURL=wp-block-library-inline-css */ 63</style> 64 65<style id="classic-theme-styles-inline-css"> 66/*! This file is auto-generated */ 67.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} 68/*# sourceURL=/wp-includes/css/classic-themes.min.css */ 69</style> 70 71<style id="global-styles-inline-css"> 72: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%);
72--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);}: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;}
72.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;} 73/*# sourceURL=global-styles-inline-css */ 74</style> 75 76<link rel='stylesheet' id='contact-form-7-css' href='https://andrejgajdos.com/wp-content/cache/asset-cleanup/css/item/contact-form-7-ve683513eb7515ff7a25e01cefc721d593bad4907.css' media='all' /> 77<link rel='stylesheet' id='cookie-law-info-css' href='https://andrejgajdos.com/wp-content/cache/asset-cleanup/css/item/cookie-law-info-v8b8133c9915dacc312bb42596b697dae6e183169.css' media='all' /> 78<link rel='stylesheet' id='cookie-law-info-gdpr-css' href='https://andrejgajdos.com/wp-content/cache/asset-cleanup/css/item/cookie-law-info-gdpr-v8befca4c743632900b60099b7777a7d0db63a9e4.css' media='all' /> 79<link rel='stylesheet' id='font-awesome-css' href='https://andrejgajdos.com/wp-content/themes/shapely/assets/css/fontawesome/all.min.css?ver=7.0.2' media='all' /> 80<link rel='stylesheet' id='shapely-style-css' href='https://andrejgajdos.com/wp-content/cache/asset-cleanup/css/item/shapely-style-v771317dff55215c4b04732c8b05a02f0a09c5214.css' media='all' /> 81<link rel='stylesheet' id='ebs_dynamic_css-css' href='https://andrejgajdos.com/wp-content/plugins/easy-bootstrap-shortcodes/styles/ebs_dynamic_css.php?ver=7.0.2' media='all' /> 82<link rel='stylesheet' id='olympus-google-fonts-css' href='https://fonts.googleapis.com/css?display=swap&family=Nunito:200,300,400,500,600,700,800,900,200i,300i,400i,500i,600i,700i,800i,900i|Fjalla+One:400,400i&subset=all&ver=3.0.19' media='all' />
83<script id="jquery-core-js" src="https://andrejgajdos.com/wp-includes/js/jquery/jquery.min.js?ver=3.7.1"></script>
vendor: 1 bytes, line 83
83
84<script id="jquery-migrate-js" async='async' src="https://andrejgajdos.com/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1"></script>
vendor: 1 bytes, line 84
84
85<script id="cookie-law-info-js-extra"> 86var Cli_Data = {"nn_cookie_ids":[],"cookielist":[],"non_necessary_cookies":[],"ccpaEnabled":"","ccpaRegionBased":"","ccpaBarEnabled":"","strictlyEnabled":["necessary","obligatoire"],"ccpaType":"gdpr","js_blocking":"","custom_integration":"","triggerDomRefresh":"","secure_cookies":""}; 87var cli_cookiebar_settings = {"animate_speed_hide":"500","animate_speed_show":"500","background":"#FFF","border":"#b1a6a6c2","border_on":"","button_1_button_colour":"#000","button_1_button_hover":"#000000","button_1_link_colour":"#fff","button_1_as_button":"1","button_1_new_win":"","button_2_button_colour":"#333","button_2_button_hover":"#292929","button_2_link_colour":"#444","button_2_as_button":"","button_2_hidebar":"","button_3_button_colour":"#000","button_3_button_hover":"#000000","button_3_link_colour":"#fff","button_3_as_button":"1","button_3_new_win":"","button_4_button_colour":"#f5f5f5","button_4_button_hover":"#c4c4c4","button_4_link_colour":"#212529","button_4_as_button":"1","button_7_button_colour":"#212529","button_7_button_hover":"#1a1e21","button_7_link_colour":"#fff","button_7_as_button":"1","button_7_new_win":"","font_family":"inherit","header_fix":"","notify_animate_hide":"1","notify_animate_show":"","notify_div_id":"#cookie-law-info-bar","notify_position_horizontal":"right","notify_position_vertical":"bottom","scroll_close":"","scroll_close_reload":"","accept_close_reload":"","reject_close_reload":"","showagain_tab":"","showagain_background":"#fff","showagain_border":"#000","showagain_div_id":"#cookie-law-info-again","showagain_x_position":"100px","text":"#000","show_once_yn":"","show_once":"10000","logging_on":"","as_popup":"","popup_overlay":"1","bar_heading_text":"","cookie_bar_as":"banner","popup_showagain_position":"bottom-right","widget_position":"left"}; 88var log_object = {"ajax_url":"https://andrejgajdos.com/wp-admin/admin-ajax.php"}; 89//# sourceURL=cookie-law-info-js-extra 90</script>
vendor: 1 bytes, line 90
90
91<script id="cookie-law-info-js" defer='defer' src="https://andrejgajdos.com/wp-content/cache/asset-cleanup/js/item/cookie-law-info-v515b486035533da9d96189a084a1e1ab0630db3f.js"></script>
vendor: 1 bytes, line 91
91
92<script id="jquery-easing-js" async='async' src="//cdnjs.cloudflare.com/ajax/libs/jquery-easing/1.4.1/jquery.easing.min.js?ver=7.0.2"></script>
92 93<link rel="https://api.w.org/" href="https://andrejgajdos.com/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://andrejgajdos.com/wp-json/wp/v2/pages/5" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://andrejgajdos.com/xmlrpc.php?rsd" /> 94<!-- HFCM by 99 Robots - Snippet # 25: homepage - header --> 95<meta property="og:image" content="https://andrejgajdos.com/wp-content/uploads/2021/05/andrej-gajdos-1.jpg"> 96<link rel="stylesheet" href="https://andrejgajdos.com/wp-content/cache/asset-cleanup/css/item/a9c7d460118dd74a0a5483dbfc88e5af-v28e7367c4d51977616db84f7fe98b8c13886e6d8.css" /> 97 <link rel="preload" href="https://andrejgajdos.com/wp-content/cache/asset-cleanup/css/item/1a64bc7ccb561b852e220de6d82f19bc-v2a970dea66bdd16a8192aeff0f13e3caa687d41c.css" as="style" onload="this.onload=null;this.rel='stylesheet'" /> 98<noscript> 99 <link 100 rel="stylesheet" 101 href="https://andrejgajdos.com/wp-content/themes/shapely/assets/custom/skills_25.css" 102 /> 103</noscript> 104 105<!-- /end HFCM by 99 Robots -->
106<script>
vendor: 339 bytes, lines 106-112
106 107 (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ 108 (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), 109 m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) 110 })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); 111 112 ga('create', '
112UA-72485492-1
vendor: 39 bytes, lines 112-114
112', 'auto'); 113 ga('send', 'pageview'); 114
115</script>
115 116<style type='text/css'>img#wpstats{display:none}</style> 117 <style type="text/css">a, .image-bg a, .contact-section .social-icons li a, a:visited, .footer .footer-credits a, .post-content .post-meta li a, .post-content .shapely-category a, .module.widget-handle i {color:#305c91 }a:hover, 118 a:active, 119 a:focus, 120 .post-title a:hover, 121 .post-title a:focus, 122 .image-bg a:hover, 123 .image-bg a:focus, 124 .contact-section .social-icons li a:hover, 125 .contact-section .social-icons li a:focus, 126 .footer .footer-credits a:hover, 127 .footer .footer-credits a:focus, 128 .post-content .post-meta li a:hover, 129 .post-content .post-meta li a:focus, 130 .widget.widget_recent_entries ul li a:focus, 131 .widget.widget_recent_entries ul li a:hover, 132 .widget.widget_recent_comments ul li .comment-author-link a:focus, 133 .widget.widget_recent_comments ul li .comment-author-link a:hover, 134 .widget.widget_archive > div ul li a:focus, 135 .widget.widget_archive > div ul li a:hover, 136 .widget.widget_archive ul li a:focus, 137 .widget.widget_archive ul li a:hover, 138 .widget.widget_categories > div ul li a:focus, 139 .widget.widget_categories > div ul li a:hover, 140 .widget.widget_categories ul li a:focus, 141 .widget.widget_categories ul li a:hover, 142 .widget.widget_meta > div ul li a:focus, 143 .widget.widget_meta > div ul li a:hover, 144 .widget.widget_meta ul li a:focus, 145 .widget.widget_meta ul li a:hover, 146 .widget.widget_pages > div ul li a:focus, 147 .widget.widget_pages > div ul li a:hover, 148 .widget.widget_pages ul li a:focus, 149 .widget.widget_pages ul li a:hover, 150 .widget.widget_nav_menu > div ul li a:focus, 151 .widget.widget_nav_menu > div ul li a:hover, 152 .widget.widget_nav_menu ul li a:focus, 153 .widget.widget_nav_menu ul li a:hover, 154 .widget.widget_nav_menu .menu > li a:focus, 155 .widget.widget_nav_menu .menu > li a:hover, 156 .widget.widget_tag_cloud a:focus, 157 .widget.widget_tag_cloud a:hover, 158 .widget_product_categories ul.product-categories li a:hover, 159 .widget_product_categories ul.product-categories li a:focus, 160 .widget_product_tag_cloud .tagcloud a:hover, 161 .widget_product_tag_cloud .tagcloud a:focus, 162 .widget_products .product_list_widget a:hover, 163 .widget_products .product_list_widget a:focus, 164 .woocommerce.widget ul.cart_list li a:hover, 165 .woocommerce.widget ul.cart_list li a:focus, 166 .woocommerce.widget ul.product_list_widget li a:hover, 167 .woocommerce.widget ul.product_list_widget li a:focus, 168 .woocommerce .widget_layered_nav_filters ul li a:hover, 169 .woocommerce .widget_layered_nav_filters ul li a:focus, 170 .woocommerce .widget_layered_nav ul li a:hover, 171 .woocommerce .widget_layered_nav ul li a:focus, 172 .main-navigation .menu > li > ul li:hover > a, 173 .main-navigation .menu > li > ul li:focus > a, 174 .main-navigation .menu > li > ul .dropdown:hover:after, 175 .main-navigation .menu > li > ul .dropdown:focus:after, 176 .main-navigation .menu li a:focus, 177 .main-navigation .menu li:focus > a, 178 .main-navigation .menu > li > ul li a:focus, 179 .post-content .shapely-category a:hover, 180 .post-content .shapely-category a:focus, 181 .main-navigation .menu li:hover > a, 182 .main-navigation .menu li:focus > a, 183 .main-navigation .menu > li:hover:after, 184 .main-navigation .menu > li:focus-within:after, 185 .bg-dark .social-list a:hover, 186 .bg-dark .social-list a:focus, 187 .shapely-social .shapely-social-icon:hover, 188 .shapely-social .shapely-social-icon:focus { color: #305c91;}.btn-filled, .btn-filled:visited, .woocommerce #respond input#submit.alt, 189 .woocommerce a.button.alt, .woocommerce button.button.alt, 190 .woocommerce input.button.alt, .woocommerce #respond input#submit, 191 .woocommerce a.button, .woocommerce button.button, 192 .woocommerce input.button, 193 .video-widget .video-controls button, 194 input[type="submit"], 195 button[type="submit"], 196 .post-content .more-link { background:#305c91 !important; border: 2px solid #305c91 !important;}.shapely_home_parallax > section:not(.image-bg) .btn-white { color:#305c91 !important; border: 2px solid#305c91 !important; }.btn-filled:hover, 197 .btn-filled:focus, 198 .woocommerce #respond input#submit.alt:hover, 199 .woocommerce #respond input#submit.alt:focus, 200 .woocommerce a.button.alt:hover, 201 .woocommerce a.button.alt:focus, 202 .woocommerce button.button.alt:hover, 203 .woocommerce button.button.alt:focus, 204 .woocommerce input.button.alt:hover, 205 .woocommerce input.button.alt:focus, 206 .woocommerce #respond input#submit:hover, 207 .woocommerce #respond input#submit:focus, 208 .woocommerce a.button:hover, 209 .woocommerce a.button:focus, 210 .woocommerce button.button:hover, 211 .woocommerce button.button:focus, 212 .woocommerce input.button:hover, 213 .woocommerce input.button:focus, 214 .video-widget .video-controls button:hover, 215 .video-widget .video-controls button:focus, 216 input[type="submit"]:hover, 217 input[type="submit"]:focus, 218 button[type="submit"]:hover, 219 button[type="submit"]:focus, 220 .post-content .more-link:hover, 221 .post-content .more-link:focus,
222 .btn:not(.btn-white):hover, 223 .btn:not(.btn-white):focus, 224 .button:not(.btn-white):hover, 225 .button:not(.btn-white):focus 226 { background: #305c91 !important; border: 2px solid#305c91 !important;}.shapely_home_parallax > section:not(.image-bg) .btn-white:hover, 227 .shapely_home_parallax > section:not(.image-bg) .btn-white:focus, 228 .pagination span:not( .dots ), 229 .pagination a:hover, 230 .pagination a:focus, 231 .woocommerce-pagination ul.page-numbers span.page-numbers, 232 .woocommerce nav.woocommerce-pagination ul li a:focus, 233 .woocommerce nav.woocommerce-pagination ul li a:hover, 234 .woocommerce nav.woocommerce-pagination ul li span.current { background-color: #305c91 !important; border-color: #305c91 !important;color: #fff !important; }.widget.widget_search .search-form > input#s:hover, 235 .widget.widget_search .search-form > input#s:focus, 236 .widget.widget_calendar #wp-calendar td:not(.pad):not(#next):not(#prev)#today, 237 .widget_product_search .woocommerce-product-search > input.search-field:hover, 238 .widget_product_search .woocommerce-product-search > input.search-field:focus, 239 .widget.widget_search input[type="text"]:focus + button[type="submit"].searchsubmit, 240 .widget.widget_search input[type="text"]:hover + button[type="submit"].searchsubmit, 241 textarea:hover, 242 textarea:focus, 243 input[type="text"]:hover, 244 input[type="search"]:hover, 245 input[type="email"]:hover, 246 input[type="tel"]:hover, 247 input[type="text"]:focus, 248 input[type="search"]:focus, 249 input[type="email"]:focus, 250 input[type="tel"]:focus, 251 .widget.widget_product_search input[type="text"]:focus + button[type="submit"].searchsubmit, 252 .widget.widget_product_search input[type="text"]:hover + button[type="submit"].searchsubmit 253 { border-color: #305c91 !important }.widget.widget_calendar #wp-calendar > caption:after, 254 .widget.widget_calendar #wp-calendar td:not(.pad):not(#next):not(#prev)#today:hover, 255 .widget.widget_calendar #wp-calendar td:not(.pad):not(#next):not(#prev)#today:focus 256 { background-color: #305c91 }.widget.widget_search input[type="text"]:focus + button[type="submit"].searchsubmit, 257 .widget.widget_search input[type="text"]:hover + button[type="submit"].searchsubmit, 258 .widget.widget_product_search input[type="text"]:focus + button[type="submit"].searchsubmit, 259 .widget.widget_product_search input[type="text"]:hover + button[type="submit"].searchsubmit, 260 .image-bg .text-slider .flex-direction-nav li a:focus:before 261 { color: #305c91 }</style><style type="text/css">.broken_link, a.broken_link { 262 text-decoration: line-through; 263}</style><link rel="icon" href="https://andrejgajdos.com/wp-content/uploads/2019/05/cropped-andrejgajdos.com_-32x32.jpg" sizes="32x32" /> 264<link rel="icon" href="https://andrejgajdos.com/wp-content/uploads/2019/05/cropped-andrejgajdos.com_-192x192.jpg" sizes="192x192" /> 265<link rel="apple-touch-icon" href="https://andrejgajdos.com/wp-content/uploads/2019/05/cropped-andrejgajdos.com_-180x180.jpg" /> 266<meta name="msapplication-TileImage" content="https://andrejgajdos.com/wp-content/uploads/2019/05/cropped-andrejgajdos.com_-270x270.jpg" /> 267<link rel="stylesheet" type="text/css" id="wp-custom-css" href="https://andrejgajdos.com/?custom-css=9de6024d18" /> <!-- Fonts Plugin CSS - https://fontsplugin.com/ --> 268 <style> 269 :root { 270--font-base: Nunito; 271--font-headings: Fjalla One; 272--font-input: Nunito; 273} 274body, #content, .entry-content, .post-content, .page-content, .post-excerpt, .entry-summary, .entry-excerpt, .widget-area, .widget, .sidebar, #sidebar, footer, .footer, #footer, .site-footer { 275font-family: "Nunito"; 276 } 277#site-title, .site-title, #site-title a, .site-title a, .entry-title, .entry-title a, h1, h2, h3, h4, h5, h6, .widget-title { 278font-family: "Fjalla One"; 279 } 280button, .button, input, select, textarea, .wp-block-button, .wp-block-button__link, .btn, .header-button-one, .header-button-two, .latest-news-button, .readmore, .submit, #submit, .more-link, .blog-post-button { 281font-family: "Nunito"; 282 } 283 </style> 284 <!-- Fonts Plugin CSS --> 285 </head> 286 287<body class="home wp-singular page-template page-template-page-templates page-template-template-home page-template-page-templatestemplate-home-php page page-id-5 wp-theme-shapely has-sidebar-right"> 288 <div id="page" class="site"> 289 <a class="skip-link screen-reader-text" href="#content">Skip to content</a> 290 291 <header id="masthead" class="site-header" role="banner"> 292 <div class="nav-container"> 293 <nav id="site-navigation" class="main-navigation" role="navigation"> 294 <div class="container nav-bar"> 295 <div class="flex-row"> 296 <div class="module left site-title-container"> 297 <a href="https://andrejgajdos.com/" class="custom-logo-link"><span class="site-title">Andrej Gajdos</span></a> </div> 298 <button class="module widget-handle mobile-toggle right visible-sm visible-xs"> 299 <i class="fa fa-bars"></i> 300 </button> 301 <div class="module-group right"> 302 <div class="module left"> 303 <div class="collapse navbar-collapse navbar-ex1-collapse"><ul id="menu" class="menu"><li id="menu-item-1072" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item current_page_item menu-item-home menu-item-1072 active"><a title="About" href="https://andrejgajdos.com/#about">About</a></li> 304<li id="menu-item-2773" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-2773 dropdown"><a title="Work" href="https://andrejgajdos.com/projects/">Work </a><span class="dropdown-toggle shapely-dropdown" data-toggle="dropdown"><i class="fa fa-angle-down" aria-hidden="true"></i></span> 305<ul role="menu" class=" dropdown-menu"> 306 <li id="menu-item-3593" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3593"><a title="Software Architect" href="https://andrejgajdos.com/freelance-software-architect-portfolio/">Software Architect</a></li> 307 <li id="menu-item-3612" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3612"><a title="Node.js Developer" href="https://andrejgajdos.com/freelance-nodejs-developer-portfolio/">Node.js Developer</a></li> 308 <li id="menu-item-3624" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3624"><a title="Chrome Extensions Developer" href="https://andrejgajdos.com/freelance-chrome-extensions-developer-portfolio/">Chrome Extensions Developer</a></li> 309 <li id="menu-item-3630" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3630"><a title="Leaflet Developer" href="https://andrejgajdos.com/freelance-leaflet-developer-portfolio/">Leaflet Developer</a></li> 310</ul> 311</li> 312<li id="menu-item-3270" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-3270 dropdown"><a title="Services" href="https://andrejgajdos.com/software-development-services/">Services </a><span class="dropdown-toggle shapely-dropdown" data-toggle="dropdown"><i class="fa fa-angle-down" aria-hidden="true"></i></span> 313<ul role="menu" class=" dropdown-menu"> 314 <li id="menu-item-3271" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3271"><a title="Fractional CTO" href="https://andrejgajdos.com/hire-fractional-cto/">Fractional CTO</a></li> 315 <li id="menu-item-3544" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3544"><a title="Software Architect" href="https://andrejgajdos.com/hire-software-architect/">Software Architect</a></li> 316 <li id="menu-item-3272" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3272"><a title="Front-end Consultant" href="https://andrejgajdos.com/front-end-consultant-for-hire/">Front-end Consultant</a></li> 317 <li id="menu-item-3273" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3273"><a title="React.js Consultant" href="https://andrejgajdos.com/react-js-consultant-for-hire/">React.js Consultant</a></li> 318 <li id="menu-item-3657" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3657"><a title="JavaScript Consultant" href="https://andrejgajdos.com/javascript-consultant-for-hire/">JavaScript Consultant</a></li> 319 <li id="menu-item-3661" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3661"><a title="MVP Development" href="https://andrejgajdos.com/custom-mvp-development-solutions/">MVP Development</a></li> 320</ul> 321</li> 322<li id="menu-item-1075" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item current_page_item menu-item-home menu-item-1075 active"><a title="Testimonials" href="https://andrejgajdos.com/#testimonials">Testimonials</a></li> 323<li id="menu-item-1073" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item current_page_item menu-item-home menu-item-1073 active"><a title="Experience" href="https://andrejgajdos.com/#experience">Experience</a></li> 324<li id="menu-item-17" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-17"><a title="Blog" href="https://andrejgajdos.com/blog">Blog</a></li> 325<li id="menu-item-2686" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item current_page_item menu-item-home menu-item-2686 active"><a title="Contact" href="https://andrejgajdos.com/#contact">Contact</a></li> 326</ul></div> </div> 327 <!--end of menu module--> 328 <div class="module widget-handle search-widget-handle hidden-xs hidden-sm"> 329 <button class="search"> 330 <i class="fa fa-search"></i> 331 <span class="title">Site Search</span> 332 </button> 333 <div class="function"> 334 <form role="search" method="get" id="searchform" class="search-form" action="https://andrejgajdos.com/" > 335 <label class="screen-reader-text" for="s">Search for:</label> 336 <input type="text" placeholder="Type Here" value="" name="s" id="s" /> 337 <button type="submit" class="searchsubmit"><i class="fa fa-search" aria-hidden="true"></i><span class="screen-reader-text">Search</span></button> 338 </form> </div> 339 </div> 340 </div> 341 <!--end of module group--> 342 </div>
343 </div> 344 </nav><!-- #site-navigation --> 345 </div> 346 </header><!-- #masthead --> 347 <div id="content" class="main-container"> 348 349 <section class="content-area "> 350 <div id="main" class="" role="main"> 351<div id="custom_html-2" class="widget_text widget widget_custom_html"><div class="textwidget custom-html-widget"><div class="section-container"><div class="hero-section"><div class="hero"><div class="content"> 352 <span class="pre-header">Hi, my name is Andrej Gajdos</span> 353 <h1 class="main-header">I'm a full stack developer building custom web applications in JavaScript, React and Node.js</h1><button class="find-btn">FIND OUT MORE</button> 354</div> 355 <picture> 356<source media="(min-width:992px)" srcset="./wp-content/uploads/2021/05/andrej-gajdos-1.webp" type="image/webp"> 357<source media="(min-width:992px)" srcset="./wp-content/uploads/2021/05/andrej-gajdos-1.jpg" type="image/jpeg"> 358<img src="./wp-content/uploads/2021/05/andrej-gajdos-1.jpg" 359 alt="Freelance Full Stack Web App Developer | Andrej Gajdos" 360 title="Freelance Full Stack Web App Developer | Andrej Gajdos" class="profile-picture"> 361</picture> 362 <div class="img-container"> 363 <picture> 364<source media="(max-width:992px)" srcset="./wp-content/uploads/2021/05/andrej-gajdos-mobile-1.webp" type="image/webp"> 365<source media="(max-width:992px)" srcset="./wp-content/uploads/2021/05/andrej-gajdos-mobile-1.jpg" type="image/jpeg"> 366<img src="./wp-content/uploads/2021/05/andrej-gajdos-mobile-1.jpg" class="profile-picture--mobile" 367 alt="Freelance Full Stack Web App Developer | Andrej Gajdos" 368 title="Freelance Full Stack Web App Developer | Andrej Gajdos" /> 369</picture></div></div></div></div></div></div><div id="custom_html-14" class="widget_text widget widget_custom_html"><div class="textwidget custom-html-widget"><div class="section-container bcg-grey"> 370<div class="section logos"> 371 <img src="https://andrejgajdos.com/wp-content/themes/shapely/assets/custom/log/apple.svg" alt="apple logo" title="apple"/> 372 <img src="https://andrejgajdos.com/wp-content/themes/shapely/assets/custom/log/binance.svg" alt="binance logo" title="binance"/> 373 <img src="https://andrejgajdos.com/wp-content/themes/shapely/assets/custom/logos/ouro-3.svg" alt="ouro logo" title="Ouro"/> 374 <img src="https://andrejgajdos.com/wp-content/themes/shapely/assets/custom/log/bankrate.svg" alt="bankrate logo" title="bankrate"/> 375 <img src="https://andrejgajdos.com/wp-content/themes/shapely/assets/custom/log/kettle.svg" alt="kettle logo" title="kettle"/> 376 <img src="https://andrejgajdos.com/wp-content/themes/shapely/assets/custom/log/adapt.svg" alt="adaptwordwide logo" title="adaptwordwide"/> 377<img src="https://andrejgajdos.com/wp-content/themes/shapely/assets/custom/log/ateams.svg" alt="a.teams logo" title="a.teams"/> 378 <img src="https://andrejgajdos.com/wp-content/themes/shapely/assets/custom/log/toptal.svg" alt="toptal logo" title="toptal"/> 379 <img src="https://andrejgajdos.com/wp-content/themes/shapely/assets/custom/log/nash.svg" alt="nash logo" title="nash"/> 380 <img src="https://andrejgajdos.com/wp-content/themes/shapely/assets/custom/log/shipserv.svg" alt="shipserv logo" title="shipserv"/> 381 <img src="https://andrejgajdos.com/wp-content/themes/shapely/assets/custom/log/shipbuilder.svg" alt="shipbuilder logo" title="shipbuilder"/> 382 <img src="https://andrejgajdos.com/wp-content/themes/shapely/assets/custom/log/stackbit.svg" alt="stackbit logo" title="stackbit"/> 383 <img src="https://andrejgajdos.com/wp-content/themes/shapely/assets/custom/log/ataccama.svg" alt="ataccama logo" title="ataccama"/> 384 <img src="https://andrejgajdos.com/wp-content/themes/shapely/assets/custom/log/3icap.svg" alt="3icap logo" title="3icap"/> 385 <img src="https://andrejgajdos.com/wp-content/themes/shapely/assets/custom/log/ctrl.svg" alt="ctrl logo" title="ctrl"/> 386</div> 387 </div></div></div><div id="custom_html-20" class="widget_text widget widget_custom_html"><div class="textwidget custom-html-widget"><div class="section-container"><div class="section" id="about"> 388 <div class="about"> 389 <h2>ABOUT</h2> 390 <div class="about__content"> 391 <p>I'm a freelance full-stack developer who thinks like the technical leader your project needs. Over the past 10 years I've <a href="https://andrejgajdos.com/freelance-software-architect-portfolio/" target="_blank">architected systems</a>, led engineering teams as a <a href="https://andrejgajdos.com/hire-fractional-cto/" target="_blank">fractional CTO</a>
391, and shipped 20+ products for everyone from solo founders and startups to Apple and Binance.</p> 392<p> 393 So you're not just hiring a pair of hands. You get someone who can own your product end to end: designing the architecture, writing clean, maintainable code, and building web applications that stay fast whether you have ten users or a hundred thousand. And as products get smarter, I integrate LLM APIs and build AI agents.</p> 394<p> 395 Whether you need a custom web application, an AI agent or LLM integration, a business website, or a technical partner to pressure-test your roadmap, I can help. I work with startups and established companies alike and I'm available during the week to talk through what you're building.</p> 396 <p><i class="far fa-paper-plane"></i><a href="/cdn-cgi/l/email-protection#a3cec2cacfe3c2cdc7d1c6c9c4c2c9c7ccd08dc0ccce"><span class="__cf_email__" data-cfemail="a5c8c4ccc9e5c4cbc1d7c0cfc2c4cfc1cad68bc6cac8">[email protected]</span></a></p> 397 <iframe title="vimeo-player" src="https://player.vimeo.com/video/757367138?h=714af2e132" width="640" height="360" frameborder="0" allowfullscreen></iframe> 398 </div> 399 <h3> 400 What is a full stack developer ? 401 </h3> 402 <div class="about__content"> 403 A full stack developer has the functional knowledge and ability to take a concept and turn it into a finished product. A full stack developer should have knowledge in front end and back end development. Front end developers build the visible parts of applications that users see and interact with. Back end developers on the other hand, are responsible for building the parts the user does not see, which include core computational logic, server and database. 404 </div> 405 </div> 406</div> 407</div></div></div><div id="custom_html-4" class="widget_text widget widget_custom_html"><div class="textwidget custom-html-widget"><div class="section-container bcg-grey"> 408 <div class="section" id="experience"> 409 <div class="skills-experience"> 410 <div class="skills-experience__nav"> 411 <div class="tab--underline"></div> 412 <select class="skills-experience__select custom-select"> 413 <option value="skills-tab" selected class="skills-tab">SKILLS</option> 414 <option value="experience-tab" class="experience-tab">EXPERIENCE</option> 415 <option value="code-samples-tab" class="code-samples-tab">CODE SAMPLES</option> 416 </select> 417 <ul class="skills-experience__tabs"> 418 <li class="nav-item"> 419 <span class="nav-item__text active" data-value="skills-tab">SKILLS</span> 420 </li> 421 <li class="nav-item"> 422 <span class="nav-item__text" data-value="experience-tab">EXPERIENCE</span> 423 </li> 424 <li class="nav-item"> 425 <span class="nav-item__text" data-value="code-samples-tab">CODE SAMPLES</span> 426 </li> 427 </ul> 428 </div> 429 <div class="skills-experience__content"> 430 <div class="skills skills-tab active-content"> 431 <div class="front"> 432 <div class="front__rib"><span>Front-end</span></div> 433 <div class="front__content"> 434 <div class="front-grp"> 435 <h3 class="grp-heading">JavaScript</h3> 436 <ul class="grp-list"> 437 <li>Single-page Applications (SPA)</li> 438 <li> 439 <a href="https://reactjs.org/" target="_blank">React 440 </a> 441 </li> 442 <li><a href="https://www.typescriptlang.org/" target="_blank">TypeScript</a></li> 443 444 <li><a href="https://nextjs.org/" target="_blank">Next.js</a></li> 445 <li><a href="https://www.gatsbyjs.org/" target="_blank">Gatsby</a></li> 446 <li><a href="https://www.apollographql.com/" target="_blank">Apollo</a></li> 447 <li> 448 <a href="https://webpack.js.org/" target="_blank">Webpack</a></li> 449 <li><a href="https://graphql.org/" target="_blank">GraphQL</a></li> 450 <li><a href="https://d3js.org/" target="_blank">D3.js</a></li> 451 <li><a href="https://leafletjs.com/" target="_blank">Leaflet</a></li> 452 <li><a href="https://www.mapbox.com/" target="_blank">Mapbox</a></li> 453 <li><a href="https://redux.js.org/" target="_blank">Redux</a></li> 454 <li><a href="https://mobx.js.org/" target="_blank">MobX</a></li> 455 <li>Web3 (ethers.js)</li> 456 </ul> 457 </div> 458 <div class="front-grp"> 459 <h3 class="grp-heading">HTML & CSS</h3> 460 <ul class="grp-list"> 461 <li>Responsive websites</li> 462 <li>Tailwind</li> 463 <li>CSS-in-JS (<a href="https://emotion.sh/" 464 target="_blank">Emotion</a>, <a href="https://github.com/styled-components/styled-components" 465 target="_blank">styled-components</a>, <a href="https://material-ui.com/styles/advanced/" 466 target="_blank">Material UI</a>)</li> 467 <li><a href="https://sass-lang.com/" target="_blank">SASS</a></li> 468 <li><a href="https://material-ui.com/" target="_blank">Material UI</a></li> 469 <li><a href="https://getbootstrap.com/" target="_blank">Bootstrap</a></li> 470 </ul> 471 </div> 472 </div> 473 </div> 474 <div class="back"> 475 <div class="back__rib"><span>Back-end</span></div> 476 <div class="back__content"> 477 <ul class="grp-list"> 478 <li><a href="https://nodejs.org/en/" target="_blank">Node.js</a></li> 479 <li><a href="https://www.postgresql.org/" target="_blank">PostgreSQL</a></li> 480 <li><a href="https://www.mysql.com/" target="_blank">MySQL</a></li> 481 <li><a href="https://www.mongodb.com/" target="_blank">MongoDB</a></li><li><a href="https://expressjs.com/" target="_blank">Express.js</a></li> 482 <li><a href="https://koajs.com/" target="_blank">Koa.js</a></li> 483 <li><a href="https://knexjs.org/" target="_blank">Knex</a></li> 484 <li><a href="https://aws.amazon.com/" target="_blank">Amazon Web Services (AWS)</a></li> 485 <li>DataDog</li> 486 <li><a href="https://www.heroku.com/" target="_blank">Heroku</a></li> 487 <li><a href="https://firebase.google.com/" target="_blank">Firebase</a></li> 488 <li>third-party APIs (Facebook, Twitter, YouTube, GitHub, etc.)</li> 489 </ul> 490 </div> 491 </div> 492 <div class="others"> 493 <div class="others__rib"><span>Others</span></div> 494 <div class="others__content"> 495 <ul class="grp-list"> 496<li>AI Agent Development</li> 497 <li>LLM API Integration</li> 498 <li>Chrome Extensions</li> 499 <li>DevOps</li> 500 <li>Headless CMS (<a href="https://www.contentful.com/" target="_blank">Contentful</a>, <a href="https://prismic.io/" target="_blank">Prismic</a>, <a href="https://strapi.io/" target="_blank">Strapi</a>)</li> 501 <li>Search engine optimization (SEO)</li> 502 <li>UI Prototyping</li> 503 <li>Designing RESTful APIs</li> 504 </ul> 505 </div> 506 </div> 507 </div> 508 <div class="experience experience-tab"> 509 <div class="row"> 510 <div class="experience__rib"> 511 <ul class="companies__list"> 512 <li class="toptal-position company active-company"><img src="./wp-content/themes/shapely/assets/custom/toptal-logo.svg" 513 height="25px" class="company-log" alt="Toptal â network of the best freelance softw
513are engineers" title="Toptal â network of the best freelance software engineers"> 514 </li> 515 <li class="na-position company"><img src="./wp-content/themes/shapely/assets/custom/na-logo.svg" height="25px" class="company-log" alt="NA logo â custom Gatsby website" title="NA logo â custom Gatsby website"> 516 </li> 517 <li class="fa-position company"><img src="./wp-content/themes/shapely/assets/custom/fa-logo.png" height="25px" 518 class="company-log" alt="FA logo â React prototype" title="FA logo â React prototype"> 519 </li> 520 <li class="glo-position company"><img src="./wp-content/themes/shapely/assets/custom/glo-logo.svg" height="25px" 521 class="company-log" alt="GLO logo â React Native project" title="GLO logo â React Native project"> 522 </li> 523 <li class="say-position company"><img src="./wp-content/themes/shapely/assets/custom/say-logo.svg" height="25px" 524 class="company-log" alt="SAY logo â full-stack platform" title="SAY logo â full-stack platform"> 525 </li> 526 <li class="zt-position company"><img src="./wp-content/themes/shapely/assets/custom/zt-logo.png" alt="ZT logo â pre-sales engineer position" title="ZT logo â pre-sales engineer position" height="25px" class="company-log"> 527 </li> 528 <li class="ata-position company"><img src="./wp-content/themes/shapely/assets/custom/ata-logo.svg" height="25px" 529 class="company-log" alt="ATA logo â software engineer position" title="ATA logo â software engineer position"> 530 </li> 531 </ul> 532 </div> 533 <div class="positions"> 534 <div class="toptal-position"> 535 <div class="accordion-item open"> 536 <img src="./wp-content/themes/shapely/assets/custom/toptal-logo.svg" height="25px" 537 class="company-log" alt="Toptal â network of the best freelance software engineers" title="Toptal â network of the best freelance software engineers"/> 538 <div class="accordion-arrow"></div> 539 </div> 540 <div class="position active-position"> 541 <h3 class="position__heading">Fractional CTO | Software Architect | Full-Stack Developer</h3> 542 <i>September 2016 - Present</i> 543 <div class="position-text">I am a full-stack developer with focus on PERN/MERN stack and 10+ years of experience delivering software. My Toptal profile is available <a href="https://www.toptal.com/resume/andrej-gajdos" target="_blank">here</a>. 544 </div> 545 <ul class="position-tags"> 546 <li>Development tools:</li> 547 <li>AWS</li> 548 <li>React</li> 549 <li>Node.js</li> 550 <li>PostgreSQL</li> 551 </ul> 552 </div> 553 </div> 554 <div class="na-position"> 555 <div class="accordion-item collapsed"> 556 <img src="./wp-content/themes/shapely/assets/custom/na-logo.svg" height="25px" 557 class="company-log" alt="NA logo â custom Gatsby website" title="NA logo â custom Gatsby website" /> 558 <div class="accordion-arrow"></div> 559 </div> 560 <div class="position"> 561 <h3 class="position__heading">React Developer</h3> 562 <i>July 2018 - May 2019</i> 563 <ul class="position-res-list"> 564 <li class="position-res">Built company's fully responsive website.</li> 565 <li class="position-res">Built customizable UI components used across multiple projects. 566 </li> 567 <li class="position-res">Built functional prototype of funds management and payments system in exchange platform. 568 </li> 569 </ul> 570 <ul class="position-tags"> 571 <li>Development tools:</li> 572 <li>Javascript</li> 573 <li>React</li> 574 <li>Gatsby</li> 575 <li>GraphQL</li> 576 <li>Styled-Components</li> 577 <li>Typescript</li> 578 </ul> 579 </div> 580 </div> 581 <div class="fa-position"> 582 <div class="accordion-item collapsed"> 583 <img src="./wp-content/themes/shapely/assets/custom/fa-logo.png" alt="FA logo â React prototype" title="FA logo â React prototype" height="25px" 584 class="company-log" /> 585 <div class="accordion-arrow"></div> 586 </div> 587 <div class="position"> 588 <h3 class="position__heading">React Developer</h3> 589 <i>May 2018 - July 2018</i> 590 <ul class="position-res-list"> 591 <li class="position-res">Designed and built a functional prototype of event management platform for managing swimming teams and swimming competitions. 592 </li> 593 <li class="position-res">Designed a new user interface based on customerâs prototypes. 594 </li> 595 <li class="position-res">Built a functional prototype from scratch as a single page application. 596 </li> 597 </ul> 598 <ul class="position-tags"> 599 <li>Development tools:</li> 600 <li>Javascript</li> 601 <li>React</li> 602 <li>Redux-Saga</li> 603 </ul> 604 </div> 605 </div> 606 <div class="glo-position"> 607 <div class="accordion-item collapsed"> 608 <img src="./wp-content/themes/shapely/assets/custom/glo-logo.svg" alt="GLO logo â React Native project" title="GLO logo â React Native project" height="25px" 609 class="company-log" /> 610 <div class="accordion-arrow"></div> 611 </div> 612 <div class="position"> 613 <h3 class="position__heading">React Developer</h3> 614 <i>March 2018 - May 2018</i> 615 <ul class="position-res-list"> 616 <li class="position-res">Helped deliver a React Native project used for managing 617 fitness 618 studios. 619 </li> 620 <li class="position-res">Fixed various bugs and issues in the project.</li> 621 <li class="position-res">Optimized the project for the Android platform.</li> 622 </ul> 623 <ul class="position-tags"> 624 <li>Development tools:</li> 625 <li>Javascript</li> 626 <li>React Native</li> 627 <li>Redux</li> 628 </ul> 629 </div> 630 </div> 631 <div class="say-position"> 632 <div class="accordion-item collapsed"> 633 <img src="./wp-content/themes/shapely/assets/custom/say-logo.svg" height="25px" 634 class="company-log" alt="SAY logo â full-stack platform" title="SAY logo â full-stack platform"/> 635 <div class="accordion-arrow"></div> 636 </div> 637 <div class="position"> 638 <h3 class="position__heading">Full-Stack Developer</h3> 639 <i>August 2017 - May 2018</i> 640 <ul class="position-res-list"> 641 <li class="position-res">Designed and built an interactive podcast platform.</li> 642 <li class="position-res">Built a single-page app from scratch with a complex user 643 interface, 644 including user interactions and animations using React.js, Redux, D3.js, 645 Webpack, 646 SVG, 647 and 648 HTML5 Audio. 649 </li> 650 <li class="position-res">Designed and developed a RESTful API server using Heroku, 651 Amazon 652 S3, 653 Node.js, Koa, PostgreSQL, and integration with Twitter API. 654 </li> 655 <li class="position-res">Podcasters can upload audio files and add 'spots' to 656 specific 657 moments 658 in their podcasts, which can be anything from links, to social media posts, to 659 other 660 videos 661 or images. 662 </li> 663 <li class="position-res">Listeners are engaged with content, such as social media 664 posts 665 or 666 preview of external web pages. 667 </li> 668 </ul> 669 <ul class="position-tags"> 670 <li>Development tools:</li> 671 <li>Javascript</li> 672 <li>Node.js</li> 673 <li>Koa</li> 674 <li>Objection.js</li> 675 <li>Knex.js</li> 676 <li>React</li> 677 <li>Redux</li> 678 <li>D3.js</li> 679 <li>Heroku</li> 680 <li>Amazon S3</li> 681 <li>PostgreSQL</li> 682 <li>SVG</li> 683 <li>Webpack</li> 684 <li>Babel</li> 685 <li>Twitter API</li> 686 </ul> 687 </div> 688 </div> 689 <div class="zt-position"> 690 <div class="accordion-item collapsed"> 691 <img src="./wp-content/themes/shapely/assets/custom/zt-logo.png" height="25px" 692 class="company-log" alt="ZT logo â pre-sales engineer position" title="ZT logo â pre-sales engineer position"/> 693 <div class="accordion-arrow"></div> 694 </div> 695 <div class="position"> 696 <h3 class="position__heading">Pre-sales Engineer</h3> 697 <i>June 2016 - June 2017</i> 698 <ul class="position-res-list"> 699 <li class="position-res">Presented and demonstrated products to potential customers 700 from 701 all 702 over the world. 703 </li> 704 <li class="position-res">Demonstrated product features to developer teams and showed 705 how 706 to 707 use 708 them in the development process with a specific workflow, environment, and 709 toolset. 710 </li> 711 <li class="position-res">Helped sales associates close deals by presenting our 712 products 713 in 714 specific use-cases. 715 </li> 716 <li class="position-res">Trained sales associates in how to effectively present and 717 sell 718 our 719 tools to developer teams and managers. 720 </li> 721 <li class="position-res">Assisted customers with installation, troubleshooting, and 722 other 723 customer service for configuration issues. 724 </li> 725 </ul> 726 <ul class="position-tags"> 727 <li>Development tools:</li> 728 <li>Java</li> 729 </ul> 730 </div> 731 </div> 732 <div class="ata-position"> 733 <div class="accordion-item collapsed"> 734 <img src="./wp-content/themes/shapely/assets/custom/ata-logo.svg" height="25px" 735 class="company-log" alt="ATA logo â software engineer position" title="ATA logo â software engineer position"/> 736 <div class="accordion-arrow"></div> 737 </div> 738 <div class="position"> 739 <h3 class="position__heading">Software Engineer</h3> 740 <i>April 2015 - June 2016</i> 741 <ul class="position-res-list"> 742 <li class="position-res">Implemented new features and fixed bugs in enterprise 743 applications 744 used 745 for data quality management and rewrote UI components to use modern 746
746 technologies. 747 </li> 748 <li class="position-res">Designed and implemented the front-end of an interactive 749 web 750 application for customer data management. 751 </li> 752 <li class="position-res">Designed and implemented server-to-sever communication and 753 server 754 pushes in a GWT application. 755 </li> 756 </ul> 757 <ul class="position-tags"> 758 <li>Development tools:</li> 759 <li>Javascript</li> 760 <li>Java</li> 761 <li>ES6</li> 762 <li>React</li> 763 <li>Flux</li> 764 <li>Immutable.js</li> 765 <li>Backbone.js</li> 766 <li>jQuery</li> 767 <li>Bootstrap</li> 768 <li>SCSS</li> 769 <li>Webpack</li> 770 <li>Gulp</li> 771 <li>Babel</li> 772 <li>D3.js</li> 773 <li>JSP</li> 774 <li>JSTL</li> 775 <li>JMS</li> 776 <li>ActiveMQ</li> 777 <li>Errai</li> 778 </ul> 779 </div> 780 </div> 781 </div> 782 </div> 783 <a href="https://www.linkedin.com/in/andrejgajdos" class="linkedin-btn profile-btn" target="_blank"><i class="fab fa-linkedin"></i><span>LinkedIn 784 Profile</span></a> 785 </div> 786 <div class="code-samples code-samples-tab"> 787 <div class="row"> 788 <div class="code-samples__rib"> 789 <ul class="code-samples__list"> 790 <li class="scraping-sample project-item active-project"><span>link-preview-generator</span></li> 791 <li class="node-sample project-item"><span>auth-flow-spa-node-react</span></li> 792 <li class="neo-sample project-item"> 793 <span>neo-transfer</span> 794 </li> 795 <li class="crypto-sample project-item"> 796 <span>newsfeed-cryptogoods</span> 797 </li> 798 <li class="webpack-sample project-item"> 799 <span>webpack-react</span> 800 </li> 801 <li class="jquery-sample project-item"> 802 <span>nested-datatables</span> 803 </li> 804 <li class="gulp-sample project-item"> 805 <span>svg-sprite-to-png</span> 806 </li> 807 </ul> 808 </div> 809 <div class="code-samples__content"> 810 <div class="scraping-sample"> 811 <div class="accordion-item open"> 812 <span class="sample-header">link-preview-generator</span> 813 <div class="accordion-arrow"></div> 814 </div> 815 <div class="sample active-sample"> 816 <div class="sample-desc">Get preview data (a title, description, image, domain name) from a url. Library uses puppeteer headless browser to scrape the web site. 817 </div> 818 <ul class="sample-tags"> 819 <li>Development tools:</li> 820 <li>Javascript</li> 821 <li>Node.js</li> 822 <li>Puppeteer</li> 823 </ul> 824 <div class="sample-more"><a 825 href="https://github.com/AndrejGajdos/link-preview-generator" 826 class="source-code" target="_blank">source code</a> 827 </div> 828 </div> 829 </div> 830 <div class="node-sample"> 831 <div class="accordion-item">
832 <span class="sample-header">auth-flow-spa-node-react</span> 833 <div class="accordion-arrow"></div> 834 </div> 835 <div class="sample"> 836 <div class="sample-desc">User authentication in a single page application (SPA), built with 837 Node.js 838 and React. Local 839 authentication â users can log in using username, passport and authentication 840 through 841 Facebook. 842 </div> 843 <ul class="sample-tags"> 844 <li>Development tools:</li> 845 <li>Javascript</li> 846 <li>Node.js</li> 847 <li>React</li> 848 <li>Redux</li> 849 <li>Redux-Saga</li> 850 <li>Passport.js</li> 851 <li>Koa.js</li> 852 <li>Oath</li> 853 </ul> 854 <div class="sample-more"><a href="https://github.com/AndrejGajdos/auth-flow-spa-node-react" class="source-code" target="_blank">source code</a></div> 855 </div> 856 </div> 857 <div class="neo-sample"> 858 <div class="accordion-item collapsed"> 859 <span class="sample-header">neo-transfer</span> 860 <div class="accordion-arrow"></div> 861 </div> 862 <div class="sample"> 863 <div class="sample-desc">Neo-transfer allows you to login with a private key, see 864 balance 865 and 866 transfer NEO or GAS 867 within TestNet. Project is based on JS SDK for NEO blockchain. 868 </div> 869 <ul class="sample-tags"> 870 <li>Development tools:</li> 871 <li>Javascript</li> 872 <li>React</li> 873 <li>Redux</li> 874 <li>Redux-Saga</li> 875 <li>Neon</li> 876 <li>Blockchain</li> 877 </ul> 878 <div class="sample-more"><a href="https://github.com/AndrejGajdos/neo-transfer" class="source-code" target="_blank">source code</a></div> 879 </div> 880 </div> 881 <div class="crypto-sample"> 882 <div class="accordion-item collapsed"> 883 <span class="sample-header">newsfeed-cryptogoods</span> 884 <div class="accordion-arrow"></div> 885 </div> 886 <div class="sample"> 887 <div class="sample-desc">Newsfeed for events on cryptogoods. Single, responsive page for 888 newsfeed. Polling occurs 889 every 15s for new events to update newsfeed in real-time. 890 </div> 891 <ul class="sample-tags"> 892 <li>Development tools:</li> 893 <li>Javascript</li> 894 <li>React</li> 895 <li>Redux</li> 896 <li>Redux-Saga</li> 897 <li>Blockchain</li> 898 <li>Nonfungible</li> 899 <li>Cryptocollectibles</li> 900 <li>Polling</li> 901 </ul> 902 <div class="sample-more"><a href="https://github.com/AndrejGajdos/newsfeed-cryptogoods" class="source-code" target="_blank">source code</a></div> 903 </div> 904 </div> 905 <div class="webpack-sample"> 906 <div class="accordion-item collapsed">
907 <span class="sample-header">webpack-react</span> 908 <div class="accordion-arrow"></div> 909 </div> 910 <div class="sample"> 911 <div class="sample-desc">A sample project to demonstrate bundling ES6, React, SASS and 912 Bootstrap 913 with Webpack. 914 </div> 915 <ul class="sample-tags"> 916 <li>Development tools:</li> 917 <li>Javascript</li> 918 <li>React</li> 919 <li>Webpack</li> 920 <li>Bundling</li> 921 <li>Bootstrap</li> 922 </ul> 923 <div class="sample-more"><a href="https://github.com/AndrejGajdos/webpack-react" class="source-code" target="_blank">source code</a></div> 924 </div> 925 </div> 926 <div class="jquery-sample"> 927 <div class="accordion-item collapsed"> 928 <span class="sample-header">nested-datatables</span> 929 <div class="accordion-arrow"></div> 930 </div> 931 <div class="sample"> 932 <div class="sample-desc">jQuery DataTables plugin for rendering nested DataTables in 933 rows. 934 Inner 935 tables are 936 independent of the data and layout from the outer table. 937 </div> 938 <ul class="sample-tags"> 939 <li>Development tools:</li> 940 <li>Javascript</li> 941 <li>Jquery</li> 942 <li>Datatables</li> 943 <li>Nested-structures</li> 944 </ul> 945 <div class="sample-more"><a href="https://github.com/AndrejGajdos/nested-datatables" class="source-code" target="_blank">source code</a> <a class="demo" 946 href="https://andrejgajdos.github.io/nested-datatables/" target="_blank">demo</a></div> 947 </div> 948 </div> 949 <div class="gulp-sample"> 950 <div class="accordion-item collapsed"> 951 <span class="sample-header">svg-sprite-to-png</span> 952 <div class="accordion-arrow"></div> 953 </div> 954 <div class="sample"> 955 <div class="sample-desc">A gulp workflow converts SVG sprite into PNG images utilising Gulp. 956 </div> 957 <ul class="sample-tags"> 958 <li>Development tools:</li> 959 <li>Javascript</li> 960 <li>Gulp</li> 961 </ul> 962 <div class="sample-more"><a href="https://github.com/AndrejGajdos/svg-sprite-to-png" class="source-code" target="_blank">source code</a></div> 963 </div> 964 </div> 965 </div> 966 </div> 967 <a href="https://github.com/AndrejGajdos" target="_blank" class="github-btn profile-btn"><i class="fab fa-github"></i><span>Github Profile</span></a> 968 </div> 969 </div> 970 </div> 971 </div> 972 </div></div></div><div id="custom_html-16" class="widget_text widget widget_custom_html"><div class="textwidget custom-html-widget"><div class="section-container"> 973 <div class="section" id="work"> 974 <div class="portfolio"> 975 <h2>WORK</h2> 976 <div class="portfolio__content cf"> 977 <div class="project-item"> 978 <picture> 979 <source 980 srcset="
981 https://andrejgajdos.com/wp-content/uploads/2021/05/react-project-portfolio-item.webp 982 " 983 type="image/webp" 984 /> 985 <source 986 srcset=" 987 https://andrejgajdos.com/wp-content/uploads/2021/05/react-project-portfolio-item.png 988 " 989 /> 990 <img 991 src="https://andrejgajdos.com/wp-content/uploads/2021/05/react-project-portfolio-item.png" 992 alt="React Project | Developer Portfolio Item" 993 title="React Project | Developer Portfolio Item" 994 /> 995 </picture> 996 <div class="desc__item"> 997 <span class="project-header">Apple ***</span> 998 <p class="project-desc"> 999 Web portal in React.js, which allows Apple *** 1000 </p> 1001 <span>DEVELOPMENT TOOLS</span> 1002 <ul class="project-tools"> 1003 <li>React</li> 1004 <li>Framer Motion</li> 1005 </ul> 1006 </div> 1007 </div> 1008 <div class="project-item"> 1009 <picture> 1010 <source 1011 srcset=" 1012 https://andrejgajdos.com/wp-content/uploads/2023/03/goschoolbox.webp 1013 " 1014 type="image/webp" 1015 /> 1016 <source 1017 srcset=" 1018 https://andrejgajdos.com/wp-content/uploads/2023/03/goschoolbox.png 1019 " 1020 /> 1021 <img 1022 src="https://andrejgajdos.com/wp-content/uploads/2023/03/goschoolbox.png" 1023 alt="Software Architect | Portfolio Item" 1024 title="Software Architect | Portfolio Item" 1025 /> 1026 </picture> 1027 <div class="desc__item"> 1028 <span class="project-header">GoSchoolBox</span> 1029 <p class="project-desc"> 1030 GoSchoolBox is a SaaS platform that serves as the technical
1031 infrastructure layer between school districts and tutoring 1032 companies. The number of users grew from 50k to 1mil. The 1033 GoSchoolBox platform has suffered from a significant number of 1034 application stability issues such as spontaneous error messages, 1035 gateway timeout errors, slow page load times and slow user flows. 1036 My role as a software architect was to ensure platform stability, 1037 resiliency, and scalability. I helped the team to integrate and 1038 set up APM with metrics and performance dashboards to detect and 1039 diagnose end-users' experience with mission-critical services. I 1040 refactored and fixed critical user flows to improve user flow 1041 performance, server throughput and page load performance. I 1042 optimised Mongo search performance to allow users search millions 1043 of records within seconds. 1044 </p> 1045 <span>DEVELOPMENT TOOLS</span> 1046 <ul class="project-tools"> 1047 <li>AWS</li> 1048 <li>Node.js</li> 1049 <li>MongoDB</li> 1050 </ul> 1051 <a 1052 href="https://goschoolbox.com/" 1053 target="_blank" 1054 rel="nofollow noopener noreferrer" 1055 >View project â</a 1056 > 1057 </div> 1058 </div> 1059 <div class="project-item"> 1060 <picture> 1061 <source 1062 srcset=" 1063 https://andrejgajdos.com/wp-content/uploads/2022/01/stackbit_portfolio.webp 1064 " 1065 type="image/webp" 1066 /> 1067 <source 1068 srcset=" 1069 https://andrejgajdos.com/wp-content/uploads/2022/01/stackbit_portfolio.png 1070 " 1071 /> 1072 <img 1073 src="https://andrejgajdos.com/wp-content/uploads/2022/01/stackbit_portfolio.png" 1074 alt="Website builder platform in React | Portfolio Item" 1075 title="Website builder platform in React | Portfolio Item" 1076 /> 1077 </picture> 1078 <div class="desc__item"> 1079 <span class="project-header">Stackbit</span> 1080 <p class="project-desc"> 1081 Stackbit is a website builder that helps developers of any level 1082 to build their own Jamstack sites based on Next.js and Tailwind, 1083 fast. I helped Stackbit's team to set up the tooling and design 1084 the architecture for design system of the main platform. I helped 1085 and mentored senior React developers best practices and what 1086 patterns to use to solve complex flows in React projects. I was 1087 working on fixing various issues and bugs in the platform. I was 1088 working on additional feature sets for enterprise clients. I 1089 worked as a full-stack developer in React.js, Node.js and MongoDB 1090 with focus on front-end development. 1091 </p> 1092 <span>DEVELOPMENT TOOLS</span> 1093 <ul class="project-tools"> 1094 <li>React</li> 1095 <li>Node.js</li> 1096 <li>MongoDB</li> 1097 <li>Typescript</li> 1098 </ul> 1099 <a 1100 href="https://app.stackbit.com" 1101 target="_blank" 1102 rel="nofollow noopener noreferrer" 1103 >View project â</a 1104 > 1105 </div> 1106 </div> 1107 <div class="project-item"> 1108 <picture> 1109 <source 1110 srcset=" 1111 https://andrejgajdos.com/wp-content/uploads/2022/09/provenance.webp 1112 " 1113 type="image/webp" 1114 /> 1115 <source 1116 srcset=" 1117 https://andrejgajdos.com/wp-content/uploads/2022/09/provenance_min.png 1118 " 1119 /> 1120 <img 1121 src="https://andrejgajdos.com/wp-content/uploads/2022/09/provenance_min.png" 1122 alt="fractional cto | portfolio item" 1123 title="fractional cto | portfolio item" 1124 /> 1125 </picture> 1126 <div class="desc__item">
1127 <span class="project-header">Provenance</span> 1128 <p class="project-desc"> 1129 As a fractional CTO I helped the team with strategic consult on 1130 the product development roadmap. I managed and led team of 1131 developers. I made code reviews to identify issues before they 1132 translate into technical debt. I helped developers with best 1133 practices and leverage tooling to speed up the development process 1134 and ensure code quality. I architected and built project's 1135 infrastructure, CI pipeline and third-party integrations. 1136 </p> 1137 <span>DEVELOPMENT TOOLS</span> 1138 <ul class="project-tools"> 1139 <li>AWS EC2</li> 1140 <li>Node.js</li> 1141 <li>React.js</li> 1142 </ul> 1143 <a 1144 href="https://app.provenance.co/" 1145 target="_blank" 1146 rel="nofollow noopener noreferrer" 1147 >View project â</a 1148 > 1149 </div> 1150 </div> 1151 <div class="project-item"> 1152 <picture> 1153 <source 1154 srcset=" 1155 https://andrejgajdos.com/wp-content/uploads/2021/05/computational-tool-portfolio-item.webp 1156 " 1157 type="image/webp" 1158 /> 1159 <source 1160 srcset=" 1161 https://andrejgajdos.com/wp-content/uploads/2021/05/computational-tool-portfolio-item.png 1162 " 1163 /> 1164 <img 1165 src="https://andrejgajdos.com/wp-content/uploads/2021/05/computational-tool-portfolio-item.png" 1166 alt="Computational Tool | Developer Portfolio Item " 1167 title="Computational Tool | Developer Portfolio Item " 1168 /> 1169 </picture> 1170 <div class="desc__item"> 1171 <span class="project-header">System Master PLanner</span> 1172 <p class="project-desc"> 1173 A computational tool for master planners, energy/resource 1174 managers, and policy makers. It allows users to evaluate 1175 sustainability and resiliency scenarios for large portfolios of 1176 buildings and other assets. 1177 </p> 1178 <span>DEVELOPMENT TOOLS</span> 1179 <ul class="project-tools"> 1180 <li>React</li> 1181 <li>Leaflet</li> 1182 </ul> 1183 </div> 1184 </div> 1185 </div> 1186 <a class="visit-blog-btn" href="https://andrejgajdos.com/projects/" 1187 >SEE MORE</a 1188 > 1189 </div> 1190 </div> 1191</div> 1192</div></div><div id="custom_html-6" class="widget_text widget widget_custom_html"><div class="textwidget custom-html-widget"><div class="section-container bcg-grey"> 1193<div class="section" id="testimonials"> 1194 <div class="testimonials"> 1195 <h2>THINGS PEOPLE SAY</h2> 1196 <div class="testimonial-nav"> 1197 <button class="button-dot active"> 1198 <div></div> 1199 </button> 1200 <button class="button-dot"> 1201 <div></div> 1202 </button> 1203 <button class="button-dot"> 1204 <div></div> 1205 </button> 1206 <button class="button-dot"> 1207 <div></div> 1208 </button> 1209 <button class="button-dot"> 1210 <div></div> 1211 </button> 1212 <button class="button-dot"> 1213 <div></div> 1214 </button> 1215 <button class="button-dot"> 1216 <div></div> 1217 </button> 1218 </div> 1219 <div class="testimonial-container"> 1220 <div class="testimonial-slider"> 1221 <div class="testimonial-item"> 1222 <p> 1223 Andrej exceeded our expectations. Over the course of our project, Andrej rose to the challenge of a <strong>true consulting CTO</strong>. He provided trusted and invaluable strategic consult, evaluating our other engineering talent through code reviews, setting engineering pacing, providing devops support and consulting on our product development roadmap.</p> 1224<p>As a truly talented engineering, Andrej led the design and development of our infrastructure, managed the more complicated integrations and set the standard for our early development practices. We are grateful and advantaged for having had Andrej as a member of our team. 1225 </p> 1226 <div class="testimonial-author"> 1227 <strong>Steven Greitzer, Founder & CEO at Stealth Startup</strong> 1228 </div> 1229 </div> 1230 <div class="testimonial-item"> 1231 <p> 1232 Andrej worked with our team to develop a rather complex web 1233 application using React. He joined us at a critical stage in the 1234 development process and 1235 <strong>was instrumental in guiding our team</strong> to adopt best 1236 practices for React and helping us implement more modular code. 1237 </p> 1238 <p> 1239 We found Andrej to be very professional, a skilled and efficie
1239nt 1240 programmer, and enjoyable to work with. He easily integrated with 1241 the rest of our team and was productive from day one. We would 1242 happily hire Andrej to work with us again. 1243 </p> 1244 <div class="testimonial-author"> 1245 <strong>Peter Ellis, President at Big Ladder Software</strong> 1246 </div> 1247 </div> 1248 <div class="testimonial-item"> 1249 <p> 1250 Andrej worked with Adapt Worldwide in 2019, developing multiple 1251 React widgets for a major marketing campaign. Andrej 1252 <strong>exceeded our expectations</strong> beyond measure through 1253 his skill and dedication. 1254 </p> 1255 <p> 1256 Communication with Andrej was fluid and uncomplicated, and he always 1257 went above and beyond to not only ensure the project was promptly 1258 delivered, but that it was done so to an immaculate standard. His 1259 insight and experience was hugely valuable to the project; Andrej 1260 <strong 1261 >truly helped us shape our vision and reach our goals</strong 1262 > 1263 with strong execution. 1264 </p> 1265 <p> 1266 I would highly recommend Andrej as an 1267 <strong>exceptional React developer</strong> who is completely 1268 dedicated to producing quality, functional, engaging content. It 1269 would be an absolute pleasure to work with Andrej again in the 1270 future. 1271 </p> 1272 <div class="testimonial-author"> 1273 <strong 1274 >Michael de Alwis, Creative Content Executive at Adapt 1275 Worldwide</strong 1276 > 1277 </div> 1278 </div> 1279 <div class="testimonial-item"> 1280 <p> 1281 Andrej was a <strong>key contributor</strong> to a complex, critical 1282 React web application. His work is timely and thoughtful, and he's a 1283 <strong>great communicator and team player</strong>. We hope to work 1284 with him again soon. 1285 </p> 1286 <div class="testimonial-author"> 1287 <strong>Jacob Budin, Development Manager at Kettle</strong> 1288 </div> 1289 </div> 1290 <div class="testimonial-item"> 1291 <p> 1292 After working with over a dozen developers from several different 1293 countries, it was absolutely refreshing to have had the pleasure to 1294 work with Andrej in building a full stack, dynamic web app. 1295 </p> 1296 <p> 1297 Andrej has all of the required technical expertise that one could 1298 hope for when it comes to building a highly scalable and dynamic 1299 website. For me, this meant taking designs from an early stage and 1300 building the entire front and back end of the project, release 1301 ready. 1302 </p> 1303 <p> 1304 He also exhibits a particular pride in 1305 <strong>his attention to detail</strong> (a trait which had been 1306 hard to find previously). This meant that after giving Andrej 1307 direction, you can always be confident that the 1308 <strong>code will be delivered exactly as required.</strong> Equally 1309 in my experiences, If Andrej see's a better method, he will always 1310 suggest it, 1311 <strong>helping us end up with the best product possible.</strong> 1312 </p> 1313 <p> 1314 All in all, Andrej was indispensable to our team and certainly 1315 <strong>one of the best developers</strong> that I have had the 1316 pleasure to work with. 1317 </p> 1318 <div class="testimonial-author"> 1319 <strong 1320 >Marcus Scott, Founder and Director of SayCaster (rebranded to 1321 Bitcast)</strong 1322 > 1323 </div> 1324 </div> 1325 <div class="testimonial-item"> 1326 <p> 1327 I had the pleasure of managing Andrej for about 1 year at 1328 Zeroturnaround. His 1329 <strong>natural ability to recognize deficiencies</strong> and 1330 address them made him an immediate asset to the team and the 1331 company. 1332 </p> 1333 <p> 1334 Andrej would regularly think of different ways to provide our 1335 clients with the best grasp of the benefits that our tools offered. 1336 This allowed him to grow in respect from our clients and his 1337 co-workers. Andrej was a <strong>pleasure to work with</strong> and 1338 is always looking for ways to provide himself with personal growth. 1339 </p> 1340 <p> 1341 Andrej also is an <strong>excellent orator</strong>. His clear and 1342 concise voice allowed customers to feel comfortable working with him 1343 and collaborating with him. This lead to his sales team being able 1344 to close many deals that they were previously unable to close.
1345 </p> 1346 <p> 1347 I would love to be able to work with Andrej again someday and comes 1348 with my highest of recommendations. 1349 </p> 1350 <div class="testimonial-author"> 1351 <strong 1352 >Curtis Johnson, Sales Engineering Manager at ZeroTurnaround 1353 (acquired by Rogue Wave Software)</strong 1354 > 1355 </div> 1356 </div> 1357 <div class="testimonial-item"> 1358 <p> 1359 Andrej was a <strong>great help</strong> in creating a vision and 1360 front-end prototype for our startup. I have very little technical 1361 knowledge, and he was so knowledgeable in finding us technologies 1362 that would work for our needs. He is 1363 <strong>very professional</strong>, friendly, honest, and 1364 <strong>his communication is excellent</strong>. I highly recommend 1365 Andrej! 1366 </p> 1367 <div class="testimonial-author"> 1368 <strong 1369 >Carlene Takaki, Professional Swim Coach at Palo Alto Stanford 1370 Aquatics</strong 1371 > 1372 </div> 1373 </div> 1374 </div> 1375 </div> 1376 </div> 1377</div> 1378</div></div></div><div id="custom_html-12" class="widget_text widget widget_custom_html"><div class="textwidget custom-html-widget"><div class="section"> 1379 <div class="articles"> 1380 <div class="text-animation-container"> 1381 <span class="phrase fst-phrase"><span class="word word-i">I</span> <span class="word">TAKE</span> <span 1382 class="word">YOUR</span> <span class="word">BUSINESS</span> <span class="word">TO</span> <span 1383 class="word">THE</span> <span class="word">NEXT</span> <span class="word">LEVEL</span></span> 1384 <span class="phrase snd-phrase"><span class="word word-i invisible">I</span> <span class="word">BRING</span> <span 1385 class="word">YOUR</span>
1386 <span class="word">IDEAS</span> <span class="word">TO</span> 1387 <span class="word word-reality">REALITY</span></span> 1388 <span class="phrase thd-phrase"><span class="word word-i invisible">I</span> <span 1389 class="word invisible">BRING</span> 1390 <span class="word invisible">YOUR</span> <span class="word invisible">IDEAS</span> <span 1391 class="word invisible">TO</span> <span class="word word-life">LIFE</span></span> 1392 <span class="phrase fourth-phrase"><span class="word word-i invisible">I</span> <span class="word">TURN</span> <span 1393 class="word">COMPLEX</span> <span class="word">WEB</span> <span class="word">APPLICATIONS</span> <span 1394 class="word">INTO</span> <span class="word">BEAUTIFUL</span> <span class="word">EXPERIENCES</span></span> 1395 <span class="phrase fifth-phrase"><span class="word word-i invisible">I</span> <span class="word">TACKLE</span> 1396 <span class="word">TECHNICAL</span> <span class="word">CHALLENGES</span> <span class="word">QUICKLY</span> <span 1397 class="word">AND</span> <span class="word">EFFECTIVELY</span></span> 1398 </div> 1399 <div class="box-container"> 1400 <div class="box"> 1401 <span class="box__Header">EXPERIENCE</span> 1402 <span class="box__Content">I have worked for digital agencies, big companies, startups and solo foun
1402ders. I 1403 have experience working with clients and remote development teams (20+) across different time 1404 zones. With 1405 over 10 yearsâ experience, I know where the pitfalls are in custom web 1406 applications and website projects, 1407 and how to guide you through safely.</span> 1408 </div> 1409 <div class="box"> 1410 <span class="box__Header">PROCESS</span> 1411 <span class="box__Content">My detailed, step-by-step process ensures we donât miss crucial elements that could 1412 fail your project. With each project, before I start coding, I do an extensive road-mapping session in 1413 which I define S.M.A.R.T. (specific, measurable, attainable, relevant, time-bound) goals for the 1414 project.</span> 1415 </div> 1416 <div class="box"> 1417 <span class="box__Header">SATISFACTION</span> 1418 <span class="box__Content">I continuously and automatically test the developed features to make sure the 1419 application behaves properly, and to catch any bugs early. One-off projects often turn into long-term 1420 business relationships, with clients 1421 enjoying ongoing guidance and support long after Iâve launched.
1421</span> 1422 </div> 1423 </div> 1424 </div> 1425</div></div></div><div id="custom_html-7" class="widget_text widget widget_custom_html"><div class="textwidget custom-html-widget"><div class="section-container bcg-grey"> 1426 <div class="section"> 1427 <div class="articles"> 1428 <h2>SELECTED ARTICLES</h2> 1429 <div class="articles-container"> 1430 <a href="https://andrejgajdos.com/how-to-build-an-mvp-minimum-viable-product-the-definitive-guide/" 1431 class="article__link" target="_blank" rel="noopener noreferrer"> 1432 <span class="article"> 1433 <span class="article__header"><img 1434 src="https://andrejgajdos.com/wp-content/uploads/2020/04/how_to_build_an_mvp-730x350.png" 1435 class="article__img" /><span class="article__tags"><span 1436 class="article__tag tag-1">PRODUCT 1437 STRATEGY</span><span class="article__tag tag-3">MVP</span></span></span> 1438 <span class="article__content"> 1439 <h3 class="article__title">How to Build an MVP (Minimum Viable Product): The Definitive 1440 Guide</h3> 1441 <span class="article__desc shave-5">This is the most comprehensive guide on how to build an MVP (Minimal Viable Product). In this in-depth blog post you will learn everything about tools for building MVP, from what you need to know before you start building MVP to building landing page for MVP to technologies which help you to streamline the development process. 1442 </span> 1443 </span> 1444 </span> 1445 </a> 1446 <a href="https://andrejgajdos.com/single-page-application-vs-multiple-page-application/" 1447 class="article__link" target="_blank" rel="noopener noreferrer"> 1448 <span class="article"> 1449 <span class="article__header"><img 1450 src="https://andrejgajdos.com/wp-content/uploads/2020/04/single-page_application_vs_multiple-page_application-730x350.png" 1451 class="article__img" /><span class="article__tags"><span 1452 class="article__tag tag-1">PRODUCT 1453 STRATEGY</span><span class="article__tag tag-4">SPA</span></span></span> 1454 <span class="article__content"> 1455 <h3 class="article__title">Single-Page Application vs Multiple-Page Application: Which One 1456 To Choose For Your Project</h3> 1457 <span class="article__desc shave-4">In this post Iâm going to break down EVERYTHING about single-page application vs multiple-page application. So if you are looking for a DEEP comparison of these two types of web applications or websites, youâve come to the right place. In this post, you will learn which projects are better to develop as a single-page application (SPA) or multiple-page application (MPA). You will see what single-page applications have in common as well as multiple-page applications and how to improve 1458 them. 1459 </span> 1460 </span> 1461 </span> 1462 </a> 1463 <a href="https://andrejgajdos.com/the-toolkit-of-a-freelance-full-stack-web-developer/" 1464 class="article__link" target="_blank" rel="noopener noreferrer"> 1465 <span class="article"> 1466 <span class="article__header"><img 1467 src="https://andrejgajdos.com/wp-content/uploads/2019/07/the_toolkit_of_a_freelance_developer-730x350.jpg" 1468 class="article__img" /><span class="article__tags"><span 1469 class="article__tag tag-2">FREELANCE</span><span 1470 class="article__tag tag-7">FULL-STACK</span></span></span>
1471 <span class="article__content"> 1472 <h3 class="article__title">The Toolkit of a Freelance Full Stack Web Developer</h3> 1473 <span class="article__desc shave-5">Becoming a freelance full stack web developer requires a lot of work and love of learning. At first sight it might be overwhelming to understand what you need to know and learn to make an entire web application on your own. Over the years Iâve built a lot of web applications and custom websites as a full stack web developer. Regardless of what I am building, I always try to choose tools best suited for the project. 1474 </span> 1475 </span> 1476 </span> 1477 </a> 1478 <a href="https://andrejgajdos.com/freelance-react-developer-checklist/" class="article__link" 1479 target="_blank" rel="noopener noreferrer"> 1480 <span class="article"> 1481 <span class="article__header"><img 1482 src="https://andrejgajdos.com/wp-content/uploads/2019/11/react-checklist-featured-600x350.png" 1483 class="article__img" /><span class="article__tags"><span 1484 class="article__tag tag-2">FREELANCE</span><span 1485 class="article__tag tag-6">REACT</span></span></span> 1486 <span class="article__content"> 1487 <h3 class="article__title">Freelance React Developerâs Checklist</h3> 1488 <span class="article__desc shave-6">Whether you are a freelance React developer or you do another kind of freelance work on short term projects, you can recognize similar patterns in your workflow. I found similar patterns in process of building React.js projects. In almost every project, I need to ask for clarification or similar questions in regards to graphic design. This checklist is not only for freelance React developers, but it can be helpful for others who work closely with developers, such as project managers or graphic designers. I use this checklist before starting building the project and after agreement with client. 1489 </span> 1490 </span> 1491 </span> 1492 </a> 1493 <a href="https://andrejgajdos.com/how-to-hire-a-freelance-front-end-developer/" class="article__link" 1494 target="_blank" rel="noopener noreferrer"> 1495 <span class="article"> 1496 <span class="article__header"><img 1497 src="https://andrejgajdos.com/wp-content/uploads/2019/09/freelance-front-end-deveper-730x350.jpg" 1498 class="article__img" /><span class="article__tags"><span 1499 class="article__tag tag-2">FREELANCE</span><span class="article__tag tag-5">WEB 1500 DEVELOPMENT</span></span></span> 1501 <span class="article__content"> 1502 <h3 class="article__title">How to Hire a Freelance Front End Developer</h3> 1503 <span class="article__desc shave-6">A freelance front end developer needs to have a wide array of skills and experience to deliver the desired outcome. As a freelancer, I have been developing front-ends for clients all around the world in many different industries. A lot of people asked me: âHow can I find and hire a freelance front end developerâ? Myself as a developer, I can easily verify someoneâs software development skills. However, how can you do that if you donât know anything about front end development? In this blog post, I will share a step-by-step guide to find and hire a freelance front end developer for your project, if you donât have any technical knowledge or skills. 1504 </span> 1505 </span> 1506 </span> 1507 </a> 1508 <a href="https://andrejgajdos.com/powerful-chrome-extensions-for-freelance-web-developers/" 1509 class="article__link" target="_blank" rel="noopener noreferrer">
1510 <span class="article"> 1511 <span class="article__header"><img 1512 src="https://andrejgajdos.com/wp-content/uploads/2020/03/chrome_extensions_for_freelance_web_developers-730x350.jpg" 1513 class="article__img" /><span class="article__tags"><span 1514 class="article__tag tag-2">FREELANCE</span><span class="article__tag tag-5">WEB 1515 DEVELOPMENT</span></span></span> 1516 <span class="article__content"> 1517 <h3 class="article__title">30 Powerful Chrome Extensions for Freelance Web Developers</h3> 1518 <span class="article__desc shave-5">As a freelance web developer, you probably find yourself spending a lot of time in Chrome working. You work in a fast-moving industry and keeping on top of things can be challenging. Browser extensions are known as software programs, which help in customizing the browsing experience and they are a great way to improve productivity. Web developers need to be efficient to deliver solutions on time. Further, as a freelance web developer, you spend time designing user interfaces, attracting potential clients, looking for new projects and communicating with clients. 1519 </span> 1520 </span> 1521 </span> 1522 </a> 1523 </div> <a class="visit-blog-btn" href="https://andrejgajdos.com/blog/"> VISIT THE BLOG </a> 1524 </div> 1525 </div> 1526</div></div></div><div id="custom_html-17" class="widget_text widget widget_custom_html"><div class="textwidget custom-html-widget"><div class="section-container"> 1527 <div class="section" id="contact"> 1528 <div class="call-to-act"> 1529 <h3>NEED A FULL STACK WEB DEVELOPER? LET'S BUILD SOMETHING.</h3> 1530 <div class="contact-container"> 1531 <div class="container-contact-form"> 1532 <p class="contact-par"> 1533 I'm ready to hear about your project. Don't hesitate to get in touch 1534 with me using the contact form. 1535 </p> 1536 <div class="main-contact-form"> 1537 <div role="form" class="wpcf7" id="wpcf7-f1360-o1" lang="en-US" dir="ltr"> 1538<div class="screen-reader-response"><p role="status" aria-live="polite" aria-atomic="true"></p> <ul></ul></div> 1539<form action="/#wpcf7-f1360-o1" method="post" class="wpcf7-form init" novalidate="novalidate" data-status="init"> 1540<div style="display: none;"> 1541<input type="hidden" name="_wpcf7" value="1360" /> 1542<input type="hidden" name="_wpcf7_version" value="5.5.6.1" /> 1543<input type="hidden" name="_wpcf7_locale" value="en_US" /> 1544<input type="hidden" name="_wpcf7_unit_tag" value="wpcf7-f1360-o1" /> 1545<input type="hidden" name="_wpcf7_container_post" value="0" /> 1546<input type="hidden" name="_wpcf7_posted_data_hash" value="" /> 1547<input type="hidden" name="_wpcf7_recaptcha_response" value="" /> 1548</div> 1549<p><span class="contact-form-item-header">What type of project do you need completed?</span></p> 1550<p><span class="contact-form-item-subheader">This will help me understand the basic needs of your project and set the right budget and timeline expectations.</span></p> 1551<p><span class="wpcf7-form-control-wrap project-type"><select name="project-type" class="wpcf7-form-control wpcf7-select wpcf7-validates-as-required" aria-required="true" aria-invalid="false"><option value="Select Project Type">Select Project Type</option><option value="Web App">Web App</option><option value="Marketing Website">Marketing Website</option><option value="Web App Audit">Web App Audit</option><option value="Website Audit">Website Audit</option><option value="Other">Other</option></select></span></p> 1552<p><span class="contact-form-item-header">Which services do you need?</span></p> 1553<p><span class="contact-form-item-subheader">Please specify the type level of completion you'd like me to deliver on this project.</span></p> 1554<p><span class="wpcf7-form-control-wrap project-services"><span class="wpcf7-form-control wpcf7-radio"><span class="wpcf7-list-item first"><input type="radio" name="project-services" value="Development" checked="checked" /><span class="wpcf7-list-item-label">Development</span></span><span class="wpcf7-list-item"><input type="radio" name="project-services" value="Development & Design" />
1554<span class="wpcf7-list-item-label">Development & Design</span></span><span class="wpcf7-list-item"><input type="radio" name="project-services" value="Development & Design & SEO" /><span class="wpcf7-list-item-label">Development & Design & SEO</span></span><span class="wpcf7-list-item"><input type="radio" name="project-services" value="SEO" /><span class="wpcf7-list-item-label">SEO</span></span><span class="wpcf7-list-item last"><input type="radio" name="project-services" value="Other" /><span class="wpcf7-list-item-label">Other</span></span></span></span></p> 1555<p><span class="contact-form-item-header">What's the budget for your project?</span></p> 1556<p><span class="contact-form-item-subheader">This will help me guide you toward the most appropriate solution within your budget. Consider this a starting point to our conversation, not a final quote.</span></p> 1557<p><span class="wpcf7-form-control-wrap project-budget"><select name="project-budget" class="wpcf7-form-control wpcf7-select wpcf7-validates-as-required" aria-required="true" aria-invalid="false"><option value="Select Budget">Select Budget</option><option value="$5,000 - $10,000 (static website, dashboard, or a small integration)">$5,000 - $10,000 (static website, dashboard, or a small integration)</option><option value="$10,000 - $50,000 (browser extension, internal tool, or a single-purpose app)">$10,000 - $50,000 (browser extension, internal tool, or a single-purpose app)</option><option value="$50,000 - $250,000 (product with signups, logins, payments, SaaS, marketplace)">$50,000 - $250,000 (product with signups, logins, payments, SaaS, marketplace)</option><option value="$250,000+ (large platforms with multiple user types, complex workflows, and integrations)">$250,000+ (large platforms with multiple user types, complex workflows, and integrations)</option></select></span></p> 1558<p><span class="contact-form-item-header">When do you need this project completed?</span></p> 1559<p><span class="contact-form-item-subheader">Select the option that best expresses your expectations for the timeline of this project.</span></p> 1560<p><span class="wpcf7-form-control-wrap project-timeframe"><select name="project-timeframe" class="wpcf7-form-control wpcf7-select wpcf7-validates-as-required" aria-required="true" aria-invalid="false"><option value="Select Completion Time">Select Completion Time</option><option value="Less than 1 Month">Less than 1 Month</option><option value="1-2 Months">1-2 Months</option><option value="2-3 Months">2-3 Months</option><option value="3-6 Months">3-6 Months</option><option value="6 Months+">6 Months+</option></select></span></p> 1561<p><label class="contact-form-item-header" for="namefield">Full Name</label><span class="wpcf7-form-control-wrap your-name"><input type="text" name="your-name" value="" size="40" class="wpcf7-form-control wpcf7-text wpcf7-validates-as-required" id="namefield" aria-required="true" aria-invalid="false" /></span></p> 1562<p><label class="contact-form-item-header" for="emailfield">Email</label><span class="wpcf7-form-control-wrap your-email"><input type="email" name="your-email" value="" size="40" class="wpcf7-form-control wpcf7-text wpcf7-email wpcf7-validates-as-required wpcf7-validates-as-email" id="emailfield" aria-required="true" aria-invalid="false" /></span></p> 1563<p><label class="contact-form-item-header" for="urlfield">Website URL (optional)</label><span class="wpcf7-form-control-wrap url-679"><input type="url" name="url-679" value="" size="40" class="wpcf7-form-control wpcf7-text wpcf7-url wpcf7-validates-as-url" id="urlfield" aria-invalid="false" /></span></p> 1564<p><label class="contact-form-item-header" for="textfield">Your Message</label><span class="wpcf7-form-control-wrap your-message"><textarea name="your-message" cols="40" rows="10" class="wpcf7-form-control wpcf7-textarea wpcf7-validates-as-required" id="textfield" aria-required="true" aria-invalid="false"></textarea></span></p> 1565<p><input type="submit" value="Send" class="wpcf7-form-control has-spinner wpcf7-submit" /></p> 1566<p style="display: none !important;"><label>Δ<textarea name="_wpcf7_ak_hp_textarea" cols="45" rows="8" maxlength="100"></textarea></label><input type="hidden" id="ak_js_1" name="_wpcf7_ak_js" value="19"/>
vendor: 108 bytes, line 1566
1566<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
1566<script>document.getElementById( "ak_js_1" ).setAttribute( "value", ( new Date() ).getTime() );</script>
1566</p><div class="wpcf7-response-output" aria-hidden="true"></div></form></div> 1567 </div> 1568 </div> 1569 1570 <div class="container-contact-info"> 1571 <dl> 1572 <dt class="contact-info-head">Email</dt> 1573 <dd> 1574 <a href="/cdn-cgi/l/email-protection#ed808c8481ad8c83899f88878a8c8789829ec38e8280"><span class="__cf_email__" data-cfemail="59343830351938373d2b3c333e38333d362a773a3634">[email protected]</span></a> 1575 </dd> 1576 </dl> 1577 <dt class="contact-info-head">Connect</dt> 1578 <dd class="contact-info-social"> 1579 <a 1580 href="https://twitter.com/Andrej_Gajdos" 1581 target="_blank" 1582 rel="noopener noreferrer" 1583 ><i class="fab fa-twitter" aria-hidden="true"></i></a 1584 ><a 1585 href="https://www.linkedin.com/in/andrejgajdos" 1586 target="_blank" 1587 rel="noopener noreferrer" 1588 ><i class="fab fa-linkedin" aria-hidden="true"></i></a 1589 ><a 1590 href="https://github.com/AndrejGajdos" 1591 target="_blank" 1592 rel="noopener noreferrer" 1593 ><i class="fab fa-github" aria-hidden="true"></i></a 1594 ><a 1595 href="https://www.producthunt.com/@andrej_gajdos" 1596 target="_blank" 1597 rel="noopener noreferrer" 1598 ><i class="fab fa-product-hunt" aria-hidden="true"></i 1599 ></a><a 1600 href="https://angel.co/u/andrej-gajdos" 1601 target="_blank" 1602 rel="noopener noreferrer" 1603 ><i class="fab fa-angellist" aria-hidden="true"></i 1604 ></a> 1605 </dd> 1606 </div> 1607 </div> 1608 </div> 1609 </div> 1610</div> 1611</div></div> 1612 1613 1614</div><!-- #main --> 1615</section><!-- section --> 1616 1617<div class="footer-callout"> 1618 </div> 1619 1620<footer id="colophon" class="site-footer footer bg-dark" role="contentinfo"> 1621 <div class="container footer-inner"> 1622 <div class="row"> 1623 1624 1625<div class="footer-widget-area"> 1626 <div class="col-md-3 col-sm-6 footer-widget" role="complementary"> 1627 <div id="custom_html-10" class="widget_text widget widget_custom_html"><div class="textwidget custom-html-widget"><div class="footer-links"> 1628 <a href="https://andrejgajdos.com/">EN</a> 1629 <a href="https://andrejgajdos.com/programator-webovych-aplikacii-a-webovych-stranok/">SK</a> 1630 <a href="https://andrejgajdos.com/programator-webovych-aplikaci-a-webovych-stranek/">CZ</a> 1631</div></div></div> </div><!-- .widget-area .first --> 1632 1633 1634 1635 </div> 1636 </div> 1637 1638 <div class="row"> 1639 <div class="site-info col-sm-6"> 1640 <div class="copyright-text"> 1641 <a rel="license" href="http://creativecommons.org/licenses/by-nc/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by-nc/4.0/80x15.png" /></a><br />This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc/4.0/">Creative Commons Attribution-NonCommercial 4.0 International License</a>. </div> 1642 <div class="footer-credits"> 1643 Theme by <a href="https://colorlib.com/" target="_blank" rel="nofollow noopener" title="Colorlib">Colorlib</a> Powered by <a href="http://wordpress.org/" target="_blank" title="WordPress.org">WordPress</a> </div> 1644 </div><!-- .site-info --> 1645 <div class="col-sm-6 text-right"> 1646 <nav id="social" class="social-icons"><ul id="menu-social-items" class="list-inline social-list"><li id="menu-item-14" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-14"><a href="https://twitter.com/Andrej_Gajdos"><i class="social_icon fa"><span>Twitter</span></i></a></li> 1647<li id="menu-item-15" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-15"><a href="https://www.linkedin.com/in/andrejgajdos"><i class="social_icon fa"><span>Linkedin</span></i></a></li> 1648<li id="menu-item-16" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-16"><a href="https://github.com/AndrejGajdos"><i class="social_icon fa"><span>Github</span></i></a></li> 1649<li id="menu-item-3335" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3335"><a href="https://www.producthunt.com/@andrej_gajdos"><i class="social_icon fa"><span>ProductHunt</span></i></a></li> 1650<li id="menu-item-1254" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1254"><a href="https://angel.co/u/andrej-gajdos"><i class="social_icon fa"><span>Angel</span></i></a></li> 1651<li id="menu-item-18" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-18"><a href="/cdn-cgi/l/email-protection#fb969a9297bb9a959f899e919c9a919f9488d
16515989496"><i class="social_icon fa"><span>Email</span></i></a></li> 1652</ul></nav> </div> 1653 </div> 1654 </div> 1655 1656 <a class="btn btn-sm fade-half back-to-top inner-link" href="#top"><i class="fa fa-angle-up"></i></a> 1657</footer><!-- #colophon --> 1658</div> 1659</div><!-- #page -->
vendor: 110 bytes, lines 1659-1661
1659 1660 1661<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
1661<script type="speculationrules"> 1662{"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/shapely/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} 1663</script>
1663 1664<!--googleoff: all--><div id="cookie-law-info-bar" data-nosnippet="true"><span><div class="cli-bar-container cli-style-v2"><div class="cli-bar-message">This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish.</div><div class="cli-bar-btn_container"><a role="button" class="medium cli-plugin-button cli-plugin-main-button cli_settings_button" style="margin:0px 5px 0px 0px">Settings</a><a id="wt-cli-accept-all-btn" role="button" data-cli_action="accept_all" class="wt-cli-element medium cli-plugin-button wt-cli-accept-all-btn cookie_action_close_header cli_action_button">Accept All</a></div></div></span></div><div id="cookie-law-info-again" style="display:none" data-nosnippet="true"><span id="cookie_hdr_showagain">Privacy & Cookies Policy</span></div><div class="cli-modal" data-nosnippet="true" id="cliSettingsPopup" tabindex="-1" role="dialog" aria-labelledby="cliSettingsPopup" aria-hidden="true"> 1665 <div class="cli-modal-dialog" role="document"> 1666 <div class="cli-modal-content cli-bar-popup"> 1667 <button type="button" class="cli-modal-close" id="cliModalClose"> 1668 <svg class="" viewBox="0 0 24 24"><path d="M19 6.41l-1.41-1.41-5.59 5.59-5.59-5.59-1.41 1.41 5.59 5.59-5.59 5.59 1.41 1.41 5.59-5.59 5.59 5.59 1.41-1.41-5.59-5.59z"></path><path d="M0 0h24v24h-24z" fill="none"></path></svg> 1669 <span class="wt-cli-sr-only">Close</span> 1670 </button> 1671 <div class="cli-modal-body"> 1672 <div class="cli-container-fluid cli-tab-container"> 1673 <div class="cli-row"> 1674 <div class="cli-col-12 cli-align-items-stretch cli-px-0"> 1675 <div class="cli-privacy-overview"> 1676 <h4>Privacy Overview</h4> <div class="cli-privacy-content"> 1677 <div class="cli-privacy-content-text">This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.</div> 1678 </div> 1679 <a class="cli-privacy-readmore" aria-label="Show more" role="button" data-readmore-text="Show more" data-readless-text="Show less"></a> </div> 1680 </div> 1681 <div class="cli-col-12 cli-align-items-stretch cli-px-0 cli-tab-section-container"> 1682 <div class="cli-tab-section"> 1683 <div class="cli-tab-header"> 1684 <a role="button" tabindex="0" class="cli-nav-link cli-settings-mobile" data-target="necessary" data-toggle="cli-toggle-tab"> 1685 Necessary </a> 1686 <div class="wt-cli-necessary-checkbox"> 1687 <input type="checkbox" class="cli-user-preference-checkbox" id="wt-cli-checkbox-necessary" data-id="checkbox-necessary" checked="checked" /> 1688 <label class="form-check-label" for="wt-cli-checkbox-necessary">Necessary</label> 1689 </div> 1690 <span class="cli-necessary-caption">Always Enabled</span> 1691 </div> 1692 <div class="cli-tab-content"> 1693 <div class="cli-tab-pane cli-fade" data-id="necessary"> 1694 <div class="wt-cli-cookie-description"> 1695 Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information. </div> 1696 </div> 1697 </div> 1698 </div> 1699 <div class="cli-tab-section"> 1700 <div class="cli-tab-header"> 1701 <a role="button" tabindex="0" class="cli-nav-link cli-settings-mobile" data-target="non-necessary" data-toggle="cli-toggle-tab"> 1702 Non-necessary </a> 1703 <div class="cli-switch"> 1704 <input type="checkbox" id="wt-cli-checkbox-non-necessary" class="cli-user-preference-checkbox" data-id="checkbox-non-necessary" checked='checked' /> 1705 <label for="wt-cli-checkbox-non-necessary" class="cli-slider" data-cli-enable="Enabled" data-cli-disable="Disabled"><span class="wt-cli-sr-only">Non-necessary</span></label> 1706 </div> 1707 </div> 1708 <div class="cli-tab-content"> 1709 <div class="cli-tab-pane cli-fade" data-id="non-necessary"> 1710 <div class="wt-cli-cookie-description"> 1711 Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via anal
1711ytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website. </div> 1712 </div> 1713 </div> 1714 </div> 1715 </div> 1716 </div> 1717</div> 1718 </div> 1719 <div class="cli-modal-footer"> 1720 <div class="wt-cli-element cli-container-fluid cli-tab-container"> 1721 <div class="cli-row"> 1722 <div class="cli-col-12 cli-align-items-stretch cli-px-0"> 1723 <div class="cli-tab-footer wt-cli-privacy-overview-actions"> 1724 1725 <a id="wt-cli-privacy-save-btn" role="button" tabindex="0" data-cli-action="accept" class="wt-cli-privacy-btn cli_setting_save_button wt-cli-privacy-accept-btn cli-btn">SAVE & ACCEPT</a> 1726 </div> 1727 1728 </div> 1729 </div> 1730 </div> 1731 </div> 1732 </div> 1733 </div> 1734</div> 1735<div class="cli-modal-backdrop cli-fade cli-settings-overlay"></div> 1736<div class="cli-modal-backdrop cli-fade cli-popupbar-overlay"></div> 1737<!--googleon: all--><!-- HFCM by 99 Robots - Snippet # 1: Homepage -- footer -->
1738<script 1739 defer 1740 src="https://andrejgajdos.com/wp-content/themes/shapely/assets/custom/shave.min.js" 1741></script>
vendor: 2 bytes, line 1741
1741
1742<script defer src="https://andrejgajdos.com/wp-content/cache/asset-cleanup/js/item/da4f372a297e8eec8ba5c228ba668e1b-v334f95c0a861b78acfc990a0341d0b3720bcd80d.js" ></script>
vendor: 2 bytes, line 1742
1742
1743<script defer src="https://andrejgajdos.com/wp-content/cache/asset-cleanup/js/item/c12ff80c5a767b1c7a5185cf95849859-v24314edf437f41e0db56d79cded1870dfff53814.js" ></script>
vendor: 2 bytes, line 1743
1743
1744<script 1745 defer 1746 src="https://andrejgajdos.com/wp-content/themes/shapely/assets/custom/anime.min.js" 1747></script>
vendor: 2 bytes, line 1747
1747
1748<script defer src="https://andrejgajdos.com/wp-content/cache/asset-cleanup/js/item/6b27719a4b8afeb0e8c6af04ccbacfb3-v4e441956c09c49a40203bcaee86783765efabcc7.js" ></script>
1748 1749<!-- <link 1750 rel="preload" 1751 href="https://andrejgajdos.com/wp-content/themes/shapely/assets/custom/multi-step-survey-popup-07.css" 1752 as="style" 1753 onload="this.onload=null;this.rel='stylesheet'" 1754/> 1755<noscript> 1756 <link 1757 rel="stylesheet" 1758 href="https://andrejgajdos.com/wp-content/themes/shapely/assets/custom/multi-step-survey-popup-07.css" 1759 /> 1760</noscript> --> 1761<link rel="preload" href="https://andrejgajdos.com/wp-content/cache/asset-cleanup/css/item/12d8796a18b1e75a1938468b0c687515-ve2230584512d57cf4181d4bd0b8c644624f4e0d1.css" as="style" onload="this.onload=null;this.rel='stylesheet'" /> 1762<noscript> 1763 <link 1764 rel="stylesheet" 1765 href="https://andrejgajdos.com/wp-content/themes/shapely/assets/custom/widget-form-templates-05.css" 1766 /> 1767</noscript> 1768<link 1769 rel="preload" 1770 href="//cdn-images.mailchimp.com/embedcode/classic-10_7.css" 1771 as="style" 1772 onload="this.onload=null;this.rel='stylesheet'" 1773/> 1774<noscript> 1775 <link 1776 rel="stylesheet" 1777 href="//cdn-images.mailchimp.com/embedcode/classic-10_7.css" 1778 /> 1779</noscript> 1780<!--
1780<script 1781 defer 1782 src="https://andrejgajdos.com/wp-content/themes/shapely/assets/custom/multi-step-survey-popup-min-01.js" 1783></script>
1783 --> 1784<!--
1784<script 1785 defer 1786 src="https://andrejgajdos.com/wp-content/themes/shapely/assets/custom/widget-configs/general-blog-pages-min.js" 1787></script>
1787 --> 1788 1789<!-- /end HFCM by 99 Robots -->
1790<script id="wp-polyfill-js" async='async' src="https://andrejgajdos.com/wp-includes/js/dist/vendor/wp-polyfill.min.js?ver=3.15.0"></script>
vendor: 1 bytes, line 1790
1790
1791<script id="contact-form-7-js-extra"> 1792var wpcf7 = {"api":{"root":"https://andrejgajdos.com/wp-json/","namespace":"contact-form-7/v1"},"cached":"1"}; 1793//# sourceURL=contact-form-7-js-extra 1794</script>
vendor: 1 bytes, line 1794
1794
1795<script id="contact-form-7-js" defer='defer' src="https://andrejgajdos.com/wp-content/plugins/contact-form-7/includes/js/index.js?ver=5.5.6.1"></script>
vendor: 1 bytes, line 1795
1795
1796<script id="shapely-skip-link-focus-fix-js" defer='defer' src="https://andrejgajdos.com/wp-content/cache/asset-cleanup/js/item/shapely-skip-link-focus-fix-v965ecc344d16b37aabaa52a32ee25cf29a2ddfc7.js"></script>
vendor: 1 bytes, line 1796
1796
1797<script id="flexslider-js" defer='defer' src="https://andrejgajdos.com/wp-content/themes/shapely/assets/js/flexslider.min.js?ver=20160222"></script>
vendor: 1 bytes, line 1797
1797
1798<script id="imagesloaded-js" async='async' src="https://andrejgajdos.com/wp-includes/js/imagesloaded.min.js?ver=5.0.0"></script>
vendor: 1 bytes, line 1798
1798
1799<script id="shapely-scripts-js-extra"> 1800var ShapelyAdminObject = {"sticky_header":"1"}; 1801//# sourceURL=shapely-scripts-js-extra 1802</script>
vendor: 1 bytes, line 1802
1802
1803<script id="shapely-scripts-js" async='async' src="https://andrejgajdos.com/wp-content/cache/asset-cleanup/js/item/shapely-scripts-v696c08f51adacb58d9752a94c9d3d352e738d524.js"></script>
vendor: 1 bytes, line 1803
1803
1804<script id="jetpack-twitter-timeline-js" async='async' src="https://andrejgajdos.com/wp-content/plugins/jetpack/_inc/build/twitter-timeline.min.js?ver=4.0.0"></script>
vendor: 102 bytes, lines 1804-1805
1804 1805<script id="google-recaptcha-js" defer='defer' src="https://www.google.com/recaptcha/api.js?render=
18056Le-G6UUAAAAAENMPSWxUOHSURqcabUDHalAHJLN
vendor: 25 bytes, line 1805
1805&ver=3.0"></script>
1806<script id="wpcf7-recaptcha-js-extra"> 1807var wpcf7_recaptcha = {"sitekey":"6Le-G6UUAAAAAENMPSWxUOHSURqcabUDHalAHJLN","actions":{"homepage":"homepage","contactform":"contactform"}}; 1808//# sourceURL=wpcf7-recaptcha-js-extra 1809</script>
vendor: 1 bytes, line 1809
1809
1810<script id="wpcf7-recaptcha-js" defer='defer' src="https://andrejgajdos.com/wp-content/plugins/contact-form-7/modules/recaptcha/index.js?ver=5.5.6.1"></script>
1810 1811
1811<script type="text/javascript"> 1812 jQuery.noConflict(); 1813 ( 1814 function ( $ ) { 1815 $( function () { 1816 $( "area[href*=\\#],a[href*=\\#]:not([href=\\#]):not([href^='\\#tab']):not([href^='\\#quicktab']):not([href^='\\#pane'])" ).click( function () { 1817 if ( location.pathname.replace( /^\//, '' ) == this.pathname.replace( /^\//, '' ) && location.hostname == this.hostname ) { 1818 var target = $( this.hash ); 1819 target = target.length ? target : $( '[name=' + this.hash.slice( 1 ) + ']' ); 1820 if ( target.length ) { 1821 $( 'html,body' ).animate( { 1822 scrollTop: target.offset().top - 60 },900 , 'easeInBounce' ); 1823 return false; 1824 } 1825 } 1826 } ); 1827 } ); 1828 } 1829 )( jQuery ); 1830 </script>
1830 1831
1831<script src='https://stats.wp.com/e-202639.js' defer></script>
vendor: 1 bytes, line 1831
1831
1832<script> 1833 _stq = window._stq || []; 1834 _stq.push([ 'view', {v:'ext',j:'1:10.4.1',blog:'105394644',post:'5',tz:'0',srv:'andrejgajdos.com'} ]); 1835 _stq.push([ 'clickTrackerInit', '105394644', '5' ]); 1836</script>
1836 1837
1838<script>(function(){function c(){var b=a.contentDocument||(a.contentWindow&&a.contentWindow.document);if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'a40cfec1e81f9dab',t:'MTc5MDM3MDQxMQ=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script>
1838<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"f646ff19888a4a4f9be96b3f216517de","r":1,"spa":2}' crossorigin="anonymous"></script>
1838 1839</body> 1840</html> 1841 1842<!-- Optimized by Speed Booster Pack v4.5.4 --> 1843<!-- 1844Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/ 1845 1846Page Caching using disk: enhanced 1847 1848Served from: andrejgajdos.com @ 2026-09-25 21:05:55 by W3 Total Cache 1849-->
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.