1<!doctype html><html lang="en-GB" itemscope itemtype="https://schema.org/WebPage"><head><meta charset="utf-8"><title>Product Development Engineering - Codelab</title><link rel="profile" href="http://gmpg.org/xfn/11"><meta name="format-detection" content="telephone=no"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><meta name="description" content="Codelab"><meta name="facebook-domain-verification" content="e0ab2q6gwolsqxvn3w6v9strpf49gq" /><link rel="apple-touch-icon" href="https://codelab.eu/wp-content/themes/customTpl/img/apple-touch-icon.png?v1"><link rel="shortcut icon" href="https://codelab.eu/wp-content/themes/customTpl/img/favicon.ico?v1" /><meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' /><link rel="alternate" href="https://codelab.eu/pl/uslugi/inzynieria-rozwoju-produktu/" hreflang="pl" /><link rel="alternate" href="https://codelab.eu/en/services/product-development-engineering/" hreflang="en" /><link rel="alternate" href="https://codelab.eu/de/produktentwicklung/" hreflang="de" />
1<script data-cfasync="false" data-pagespeed-no-defer type="text/javascript">var gtm4wp_datalayer_name = "dataLayer"; 2 var dataLayer = dataLayer || []; 3 (function(){dataLayer.push(arguments);})('set', 'developer_id.dNGJiYT', true);</script>
3 <link rel="canonical" href="https://codelab.eu/en/services/product-development-engineering/" /><meta property="og:locale" content="en_GB" /><meta property="og:locale:alternate" content="pl_PL" /><meta property="og:locale:alternate" content="de_DE" /><meta property="og:type" content="article" /><meta property="og:title" content="Product Development Engineering - Codelab" /><meta property="og:url" content="https://codelab.eu/en/services/product-development-engineering/" /><meta property="og:site_name" content="Codelab" /><meta property="article:publisher" content="https://www.facebook.com/codelabeu" /><meta property="article:modified_time" content="2020-10-15T12:16:09+00:00" /><meta property="og:image" content="https://codelab.eu/wp-content/uploads/2020/07/car-s.jpg" /><meta property="og:image:width" content="700" /><meta property="og:image:height" content="700" /><meta property="og:image:type" content="image/jpeg" /><meta name="twitter:card" content="summary_large_image" />
3<script type="application/ld+json" class="yoast-schema-graph">{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/codelab.eu\/en\/services\/product-development-engineering\/","url":"https:\/\/codelab.eu\/en\/services\/product-development-engineering\/","name":"Product Development Engineering - Codelab","isPartOf":{"@id":"https:\/\/codelab.eu\/en\/home-page\/#website"},"primaryImageOfPage":{"@id":"https:\/\/codelab.eu\/en\/services\/product-development-engineering\/#primaryimage"},"image":{"@id":"https:\/\/codelab.eu\/en\/services\/product-development-engineering\/#primaryimage"},"thumbnailUrl":"https:\/\/codelab.eu\/wp-content\/uploads\/2020\/07\/car-s.jpg","datePublished":"2020-07-09T13:52:52+00:00","dateModified":"2020-10-15T12:16:09+00:00","breadcrumb":{"@id":"https:\/\/codelab.eu\/en\/services\/product-development-engineering\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/codelab.eu\/en\/services\/product-development-engineering\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/codelab.eu\/en\/services\/product-development-engineering\/#primaryimage","url":"https:\/\/codelab.eu\/wp-content\/uploads\/2020\/07\/car-s.jpg","contentUrl":"https:\/\/codelab.eu\/wp-content\/uploads\/2020\/07\/car-s.jpg","width":700,"height":700},{"@type":"BreadcrumbList","@id":"https:\/\/codelab.eu\/en\/services\/product-development-engineering\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona gÅówna","item":"https:\/\/codelab.eu\/en\/home-page\/"},{"@type":"ListItem","position":2,"name":"Services","item":"https:\/\/codelab.eu\/en\/services\/"},{"@type":"ListItem","position":3,"name":"Product DevelÂopÂment Engineering"}]},{"@type":"WebSite","@id":"https:\/\/codelab.eu\/en\/home-page\/#website","url":"https:\/\/codelab.eu\/en\/home-page\/","name":"Codelab","description":"Codelab","publisher":{"@id":"https:\/\/codelab.eu\/en\/home-page\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/codelab.eu\/en\/home-page\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Organization","@id":"https:\/\/codelab.eu\/en\/home-page\/#organization","name":"Codelab","url":"https:\/\/codelab.eu\/en\/home-page\/","logo":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/codelab.eu\/en\/home-page\/#\/schema\/logo\/image\/","url":"https:\/\/codelab.eu\/wp-content\/uploads\/2020\/07\/[email protected]","contentUrl":"https:\/\/codelab.eu\/wp-content\/uploads\/2020\/07\/[email protected]","width":693,"height":95,"caption":"Codelab"},"image":{"@id":"https:\/\/codelab.eu\/en\/home-page\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/codelabeu","https:\/\/www.linkedin.com\/company\/codelabeu"]}]}</script>
3 <link rel='dns-prefetch' href='//js-eu1.hs-scripts.com' /><link rel='dns-prefetch' href='//www.googletagmanager.com' /><link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://codelab.eu/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fcodelab.eu%2Fen%2Fservices%2Fproduct-development-engineering%2F" /><link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://codelab.eu/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fcodelab.eu%2Fen%2Fservices%2Fproduct-development-engineering%2F&format=xml" /><style id="litespeed-ccss">ul{box-sizing:border-box}:root{--wp--preset--font-size--normal:16px;--wp--preset--font-size--huge:42px}body{--wp--preset--color--black:#000;--wp--preset--color--cyan-bluish-gray:#abb8c3;--wp--preset--color--white:#fff;--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;
3--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,rgba(6,147,227,1) 0%,#9b51e0 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan:linear-gradient(135deg,#7adcb4 0%,#00d082 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange:linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red:linear-gradient(135deg,rgba(255,105,0,1) 0%,#cf2e2e 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray:linear-gradient(135deg,#eee 0%,#a9b8c3 100%);--wp--preset--gradient--cool-to-warm-spectrum:linear-gradient(135deg,#4aeadc 0%,#9778d1 20%,#cf2aba 40%,#ee2c82 60%,#fb6962 80%,#fef84c 100%);--wp--preset--gradient--blush-light-purple:linear-gradient(135deg,#ffceec 0%,#9896f0 100%);--wp--preset--gradient--blush-bordeaux:linear-gradient(135deg,#fecda5 0%,#fe2d2d 50%,#6b003e 100%);--wp--preset--gradient--luminous-dusk:linear-gradient(135deg,#ffcb70 0%,#c751c0 50%,#4158d0 100%);--wp--preset--gradient--pale-ocean:linear-gradient(135deg,#fff5cb 0%,#b6e3d4 50%,#33a7b5 100%);--wp--preset--gradient--electric-grass:linear-gradient(135deg,#caf880 0%,#71ce7e 100%);--wp--preset--gradient--midnight:linear-gradient(135deg,#020381 0%,#2874fc 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:.44rem;--wp--preset--spacing--30:.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,.2);--wp--preset--shadow--deep:12px 12px 50px rgba(0,0,0,.4);--wp--preset--shadow--sharp:6px 6px 0px rgba(0,0,0,.2);--wp--preset--shadow--outlined:6px 6px 0px -3px rgba(255,255,255,1),6px 6px rgba(0,0,0,1);--wp--preset--shadow--crisp:6px 6px 0px rgba(0,0,0,1)}#cookie-law-info-bar,.wt-cli-cookie-bar{box-sizing:border-box;font-size:10pt;margin:0 auto;padding:10px;position:absolute;text-align:center;width:100%;z-index:99999;box-shadow:rgba(0,0,0,.5) 0px 5px 10px;display:none;left:0}#cookie-law-info-again{font-size:10pt;margin:0;padding:5px 10px;text-align:center;z-index:9999;box-shadow:#161616 2px 2px 5px 2px}#cookie-law-info-bar span{vertical-align:middle}.cli-plugin-button,.cli-plugin-button:visited{display:inline-block;padding:8px 16px 8px;color:#fff;text-decoration:none;-moz-border-radius:4px;-webkit-border-radius:4px;position:relative;text-decoration:none}.cli-plugin-button,.cli-plugin-button:visited,.medium.cli-plugin-button,.medium.cli-plugin-button:visited{font-size:13px;font-weight:500;line-height:1}.cli-bar-popup{-moz-background-clip:padding;-webkit-background-clip:padding;background-clip:padding-box;-webkit-border-radius:30px;-moz-border-radius:30px;border-radius:30px;padding:20px}@media only screen and (max-width:768px){.cli-plugin-button{margin:10px}}@media only screen and (max-width:567px){.cli-switch .cli-slider:after{display:none}.cli-tab-header a.cli-nav-link{font-size:12px}.cli-modal .cli-modal-close{right:-10px;top:-15px}}.wt-cli-cookie-bar-container{display:none}.wt-cli-necessary-checkbox{display:none!important}.cli-container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.cli-row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.cli-align-items-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.cli-px-0{padding-left:0;padding-right:0}.cli-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000;-webkit-transform:scale(0);transform:scale(0)}.cli-modal-backdrop.cli-fade{opacity:0}.cli-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:99999;-webkit-transform:scale(0);transform:scale(0);overflow:hidden;outline:0;visibility:hidden}.cli-modal a{text-decoration:none}.cli-modal .cli-modal-dialog{position:relative;width:auto;margin:.5rem;font-family:inherit;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:calc(100% - (.5rem*2))}@media (min-width:576px){.cli-modal .cli-modal-dialog{max-width:500px;margin:1.75rem auto;min-height:calc(100% - (1.75rem*2))}}.cli-modal-content{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:100%;background-clip:padding-box;border-radius:.2rem;box-sizing:border-box;outline:0}.cli-modal-footer{position:relative}.cli-switch{display:inline-block;position:relative;min-height:1px;padding-left:38px;font-size:14px;width:auto}.cli-switch input[type=checkbox]{display:block;margin:0;width:0;position:absolute!important;left:0!important;opacity:0!important}.cli-switch .cli-slider{background-color:#e3e1e8;height:20px;width:38px;bottom:0;left:0;position:absolute;right:0;top:0}.cli-switch .cli-slider:before{bottom:2px;content:"";height:15px;left:3px;position:absolute;width:15px}.cli-switch input:checked+.cli-slider{background-color:#28a745}.cli-switch input:checked+.cli-slider:before{transform:translateX(18px)}.cli-switch .cli-slider{border-radius:34px;font-size:0}.cli-switch .cli-slider:before{border-radius:50%}.cli-tab-content{width:100%;padding:5px 30px 5px 5px;box-sizing:border-box}@media (max-width:767px){.cli-tab-content{padding:30px 10px}}.cli-tab-content p{color:#343438;font-size:14px;margin-top:0}.cli-wrapper{max-width:100%;float:none;margin:0 auto}.cli-tab-footer{width:100%;text-align:right;padding:20px 0}.cli-col-12{width:100%}.cli-tab-header{display:flex;justify-content:space-between}.cli-tab-header a:before{width:10px;height:2px;left:0;top:calc(50% - 1px)}.cli-tab-header a:after{width:2px;height:10px;left:4px;top:calc(50% - 5px);-webkit-transform:none;transform:none}.cli-tab-header a:before{width:7px;height:7px;border-right:1px solid #4a6e78;border-bottom:1px solid #4a6e78;content:" ";transform:rotate(-45deg);margin-right:10px}.cli-tab-header a.cli-nav-link{position:relative;display:flex;align-items:center;font-size:14px;color:#000;text-decoration:none}.cli-tab-header{border-radius:5px;padding:12px 15px;background-color:#f2f2f2}.cli-modal .cli-modal-close{position:absolute;right:0;top:0;z-index:1;-webkit-appearance:none;width:40px;height:40px;padding:0;border-radius:50%;padding:10px;background:0 0;border:none}.cli-tab-container h4{font-family:inherit;font-size:16px;margin-bottom:15px;margin:10px 0}.cli-tab-container p,.cli-privacy-content-text{font-size:14px;line-height:1.4;margin-top:0;padding:0;color:#000}.cli-tab-content{display:none}.cli-tab-section .cli-tab-content{padding:10px 20px 5px}.cli-tab-section{margin-top:5px}@media (min-width:992px){.cli-modal .cli-modal-dialog{max-width:645px}}.cli-switch .cli-slider:after{content:attr(data-cli-disable);position:absolute;right:50px;font-size:12px;text-align:right;min-width:120px}.cli-switch input:checked+.cli-slider:after{content:attr(data-cli-enable)}a.cli-privacy-readmore{font-size:12px;margin-top:12px;display:inline-block;text-decoration:underline}.cli-privacy-overview{padding-bottom:12px}a.cli-privacy-readmore:before{content:attr(data-readmore-text)}.cli-modal-close svg{fill:#000}span.cli-necessary-caption{color:#000;font-size:12px}.cli-tab-container .cli-row{max-height:500px;overflow-y:auto}.cli-bar-container{float:none;margin:0 auto;justify-content:space-between;display:flex;align-items:center;flex-wrap:wrap}.cli-style-v2{font-size:11pt;font-weight:400}.cli-bar-message{width:70%;text-align:left}@media (max-width:985px){.cli-bar-message{width:100%}.cli-bar-container{justify-content:center}}.wt-cli-sr-only{display:none}.cli_action_button,.cli-privacy-readmore,.cli-tab-header a,.cli-switch .cli-slider{outline:0}.wt-cli-ckyes-brand-logo{display:flex;align-items:center;font-size:9px;color:#111;font-weight:400}
3.wt-cli-ckyes-brand-logo img{width:65px;margin-left:2px}.wt-cli-privacy-overview-actions{padding-bottom:0}.cli-modal-content,.cli-tab-content{background-color:#fff}.cli-privacy-content-text,.cli-modal .cli-modal-dialog,.cli-tab-container p,a.cli-privacy-readmore{color:#000}.cli-tab-header{background-color:#f2f2f2}.cli-tab-header,.cli-tab-header a.cli-nav-link,span.cli-necessary-caption,.cli-switch .cli-slider:after{color:#000}.cli-switch .cli-slider:before{background-color:#fff}.cli-switch input:checked+.cli-slider:before{background-color:#fff}.cli-switch .cli-slider{background-color:#e3e1e8}.cli-switch input:checked+.cli-slider{background-color:#28a745}.cli-modal-close svg{fill:#000}.cli-tab-header a:before{border-right:1px solid #000;border-bottom:1px solid #000}html{box-sizing:border-box;-ms-overflow-style:scrollbar}*,:after,:before{box-sizing:inherit}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.col-12,.col-lg-4,.col-lg-8,.col-xl-6{position:relative;width:100%;padding-right:15px;padding-left:15px}.col-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}@media (min-width:992px){.col-lg-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}}@media (min-width:1200px){.col-xl-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}}.d-flex{display:-ms-flexbox!important;display:flex!important}.justify-content-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.align-items-center{-ms-flex-align:center!important;align-items:center!important}.far{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-angle-double-down:before{content:"\f103"}.fa-angle-down:before{content:"\f107"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.far{font-family:'Font Awesome 5 Pro';font-weight:400}:root{--swiper-theme-color:#007aff}:root{--swiper-navigation-size:44px}body{background-color:#f3f3f3;font-size:18px;font-weight:400;line-height:1.45;font-family:Montserrat,Arial,sans-serif;color:#000;margin:0;padding:0;overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%}a{text-decoration:none;outline:none;color:#7ab800}img{max-width:100%;height:auto}button{-webkit-appearance:none;-webkit-border-radius:none;border-radius:0}h1,h4{font-family:Montserrat,Arial,sans-serif;line-height:1}.sr-only,.skipMain.sr-only{position:absolute;top:-999999em;left:auto;width:1px;height:1px;overflow:hidden}.container{max-width:1430px}.no-list,.nav,.menu ul,ul.menu{list-style:none;margin:0;padding:0}.topMenu .menu.nav li a{color:#000;background-color:transparent;padding:15px 24px}.topMenu .menu.nav li.menu-item-has-children a{padding:15px 34px 15px 24px}#masthead{position:fixed;z-index:202;top:0;left:0;right:0;height:100px}.topMenu .nav li.pll-parent-menu-item .dropdown-menu li>a{display:flex!important;align-items:center!important;justify-content:flex-end!important}.topMenu .nav li.pll-parent-menu-item .dropdown-menu li>a span{font-weight:600;margin-left:12px!important;line-height:1;margin-top:2px}.topMenu .nav li.pll-parent-menu-item .dropdown-menu li>a img{height:18px;width:18px}#slideOutNav{position:fixed;top:0;right:-414px;bottom:0;width:414px;max-width:100vw;height:100vh;overflow-y:auto;background-color:#f7f7f7;overflow:auto;z-index:202}#menuSlideOut{margin-top:70px}#menuSlideOut .menu>
3li{margin-bottom:2vh}#menuSlideOut .menu>li>ul>li{margin-bottom:12px}#menuSlideOut .menu>li>ul>li.subMenuTitle{display:none!important}#menuSlideOut .sub-menu{padding-top:10px}#menuSlideOut .menu li a{color:#000}#menuSlideOut .menu>li>a{font-size:16px;font-weight:600;text-transform:uppercase}#menuSlideOut .menu li>ul>li>a{font-size:14px;font-weight:400}#menuSlideOut .nav ul>li.current-menu-item>a,#menuSlideOut .nav>li.current_page_parent>a{color:#7ab800}#notHomeImg.logoImg{width:160px;height:auto;line-height:1}#slideOutNav .logoImg img{width:160px}.logoImg a{display:inline-block;vertical-align:top}.mobile-shift{position:relative;left:0}.mobileBtn{position:absolute;z-index:203!important;height:17px;top:20px;right:20px;border-radius:50%;background-color:#f7f7f7;box-shadow:0px 0px 20px 0px rgba(0,0,0,.05);width:60px;height:60px}.mobileBtn span{position:relative;display:block;width:22px;height:3px;background-color:#000;border-radius:1.5px;margin:0 auto;text-indent:-9999px}.mobileBtn span:after,.mobileBtn span:before{content:'';display:block;position:absolute;height:3px;right:0;width:100%;border-radius:1.5px;background-color:#000}.mobileBtn span:after{top:7px}.mobileBtn span:before{top:-7px}.mobileBtn,.closeBtn{display:inline-block;padding:0;color:inherit;background:0 0;border:0;outline:none;-webkit-appearance:normal;-moz-appearance:normal;appearance:normal;z-index:1;opacity:1;visibility:visible}.mobileBtn{background-color:#fff}.closeBtn span{position:relative;display:block;width:22px;height:22px;text-indent:-9999px}.closeBtn span:before{-webkit-transform:translateY(-2px) rotate(45deg);-ms-transform:translateY(-2px) rotate(45deg);transform:translateY(-2px) rotate(45deg)}.closeBtn span:after,.closeBtn span:before{content:'';display:block;position:absolute;height:0;right:0;top:50%;width:100%;border-bottom:3px solid #000;-webkit-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%}.closeBtn span:after{-webkit-transform:translateY(-2px) rotate(-45deg);-ms-transform:translateY(-2px) rotate(-45deg);transform:translateY(-2px) rotate(-45deg)}.height100{height:100%}.section h1{font-weight:700;line-height:1;text-transform:uppercase;word-wrap:break-word}.section p{margin:0}.downArrow{position:absolute;bottom:0;left:0;right:0;margin:0 auto;text-align:center;z-index:10;width:89px;height:33px;color:#bbbcbd;font-size:18px}.downArrow a{-webkit-appearance:none;-moz-appearance:none;appearance:none}.downArrow.arrowLight{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='91px' height='34px'%3E%3Cpath fill-rule='evenodd' fill='rgb(243, 243, 243)' d='M31.310,0.177 L59.503,0.177 C66.446,0.177 72.865,3.867 76.347,9.862 L90.372,34.002 C70.775,34.002 15.848,34.002 0.443,34.002 L14.467,9.862 C17.950,3.867 24.367,0.177 31.310,0.177 '/%3E%3C/svg%3E")}.downArrow a{color:#bbbcbd}.downArrow i{position:absolute;bottom:5px;left:0;right:0;margin:auto;z-index:5}.section-lines{overflow:hidden;position:relative}.animatedColorLines{position:absolute;top:0;bottom:0;right:0;z-index:3;height:100%;width:100%;text-align:right}.page-child{background-color:#f8f8f8}#header:not(.headerLpExternal){background-color:#323537;color:#fff;padding-top:45px;padding-bottom:45px;overflow:hidden}#header .siteHeader{position:relative;z-index:4}body:not(.single-projects) #header .headerInner{max-width:700px;width:100%}#header:not(.headerLpExternal){padding-right:0}#header .imgBgCol img{max-height:100vh;max-width:initial}#callUs{position:fixed;z-index:200;background-color:#f7f7f7;border-radius:50px;max-width:calc(100% - 30px)}#callUs a{color:#000;display:inline-block;vertical-align:top}#callUs .callUsInner{text-align:right;padding:17px 83px 17px 40px;line-height:1;height:66px;box-shadow:0 0 20px 1px rgba(0,0,0,.1);border-radius:100px}#callUs .callUsWrap{line-height:1;overflow:hidden}#callUs .callusTitle{font-size:15px;font-weight:700;margin-bottom:3px}#callUs .callusTitle2line{font-size:13px;font-weight:300}#callUs .callUsIcon{position:absolute;bottom:0;right:4px}#callUs .callUsIcon img{width:60px}#cookie-law-info-bar{max-width:660px!important;width:100%!important}#wt-cli-settings-btn,#cookie-law-info-bar{font-size:12px}#wt-cli-settings-btn{margin:20px 0 0;border:none!important}#cookie-law-info-again{box-shadow:none;right:initial!important;left:0!important}#cookie-law-info-bar .cli-bar-btn_container{display:flex;flex-wrap:wrap;justify-content:space-between;margin:15px 0 0!important}#cookie-law-info-bar .cli-bar-btn_container .cli-plugin-button{margin:15px 0 0!important}
3#slideOutNavInner .socialIcons li span{display:none}@media (min-width:768px),(min-width:768px) and (-webkit-min-device-pixel-ratio:1.5){#slideOutNavInner{padding:65px}#notHomeImg img{width:230px}#callUs a{width:100%;height:100%}}@media (min-width:992px),(min-width:992px) and (-webkit-min-device-pixel-ratio:1.5){body:not(.home){padding-top:100px}body:not(.home) .mobileBtn{opacity:0;visibility:hidden}.mastheadNotHome#masthead{background-color:#fff;box-shadow:0px 0px 40px rgba(0,0,0,.12)}.mastheadNotHome#masthead .menu-header>ul,.mastheadNotHome#masthead .menu-header>ul>li{height:100%;line-height:100px}.topMenu .menu-header>ul>li{position:relative}.topMenu .menu-header,.topMenu .nav li a{color:#000;background-color:transparent;padding:0 20px;height:100%;font-size:17px}.mastheadNotHome#masthead .nav li.menu-item-has-children ul.dropdown-menu li.subMenuTitle{position:absolute!important;z-index:1;top:55px;left:15px;display:inline-block;width:auto}.mastheadNotHome#masthead .nav li.menu-item-has-children ul.dropdown-menu li.subMenuTitle:before{display:none!important}.mastheadNotHome#masthead .nav li.menu-item-has-children ul.dropdown-menu li.subMenuTitle a{font-size:20px;font-weight:700;text-transform:uppercase}.topMenu .nav li a:not(.btn) i{font-size:16px;position:absolute;right:17px}.mastheadNotHome#masthead .nav li a:not(.btn) i{top:41px}.topMenu .nav li.pll-parent-menu-item ul.dropdown-menu{max-width:1370px}.topMenu .nav li:not(.pll-parent-menu-item) ul.dropdown-menu{max-width:1430px}.topMenu .nav li ul.dropdown-menu{position:fixed;top:100px;left:0;right:0;z-index:101;transform:translate3d(0,-20px,0);background:#f7f7f7;margin:0 auto;padding:75px 15px;opacity:0;visibility:hidden;width:100%}.topMenu .nav li.menu-item-has-children ul.dropdown-menu{padding-top:110px}.mastheadNotHome#masthead .nav li ul.dropdown-menu:before{width:150vw;content:"";position:fixed;top:0;left:-50vw;right:0;z-index:1;background:#f7f7f7;height:100%}.topMenu .nav li.menu-item-has-children ul.dropdown-menu{display:flex;flex-wrap:wrap}.topMenu .nav li.menu-item-has-children ul.dropdown-menu li{line-height:1;width:100%;padding:0;margin:10px 0;position:relative;z-index:101}.topMenu .nav li.menu-item-has-children.multiCol ul.dropdown-menu li{width:100%;max-width:485px}.topMenu .nav li.menu-item-has-children ul.dropdown-menu li a{color:#000;line-height:1;font-size:14px;display:inline-block;vertical-align:top;padding:0}.topMenu .nav li.menu-item-has-children:not(.pll-parent-menu-item) ul.dropdown-menu li:before{font-family:"Font Awesome 5 Pro";content:"\f061";color:#000;display:inline-block;vertical-align:top;font-size:12px;font-weight:300;margin-right:12px}.topMenu .nav li.current-menu-parent:not(.pll-parent-menu-item),.topMenu .nav li.current-page-ancestor,.topMenu .nav li.current-menu-item{background-color:#f7f7f7}.topMenu .nav li.menu-item-has-children ul.dropdown-menu li.current-lang a,.topMenu .nav li.menu-item-has-children ul.dropdown-menu li.current_page_item a{color:#7ab800}#topMenu .nav li.pll-parent-menu-item>a>img{display:none}#header:not(.headerLpExternal){height:calc(100vh - 100px);min-height:660px;padding-left:0;padding-right:0}#header .row{margin-left:0;margin-right:0}}@media (min-width:1200px),(min-width:1200px) and (-webkit-min-device-pixel-ratio:1.5){.topMenu .menu-header,.topMenu .nav li a{padding:0 25px}#callUs{bottom:55px;right:55px}}@media (min-width:1440px),(min-width:1440px) and (-webkit-min-device-pixel-ratio:1.5){.section h1{font-size:7vh}}@media (min-width:1921px),(min-width:1921px) and (-webkit-min-device-pixel-ratio:1.5){.section h1{font-size:80px}}@media only screen and (max-width:1500px),(max-width:1500px) and (-webkit-min-device-pixel-ratio:1.5){.section h1{font-size:8vh}}@media only screen and (max-width:1439px),(max-width:1439px) and (-webkit-min-device-pixel-ratio:1.5){.section h1{font-size:6vh}}@media only screen and (max-width:1366px),(max-width:1366px) and (-webkit-min-device-pixel-ratio:1.5){body{font-size:16px}.section h1{font-size:7vh}#callUs .callUsIcon{bottom:1px}}@media (max-width:1199px),(max-width:1199px) and (-webkit-min-device-pixel-ratio:1.5){.section h1{font-size:6vh}#callUs{bottom:15px;right:15px}}@media (max-width:991px),(max-width:991px) and (-webkit-min-device-pixel-ratio:1.5){.topMenu#topMenu{display:none!important}.mastheadNotHome#masthead{top:30px}.descColBlack{position:relative;z-index:2}#header:not(.headerLpExternal){min-height:100vh;padding-top:16vh}#header:not(.headerLpExternal) .imgBgCol{position:absolute;top:0;right:-35vw;opacity:.5}#header .imgBgCol img{max-height:60vh;margin-top:10vh}}@media (max-width:767px),(max-width:767px) and (-webkit-min-device-pixel-ratio:1.5){.mastheadNotHome#masthead{top:0}#slideOutNavInner{padding:40px 55px}#notHomeImg img{width:160px}.section h1 br{display:none}.section h1{font-size:36px;font-weight:900}#header .descColBlack{padding-left:30px;padding-right:30px}#callUs .callUsIcon{bottom:0;right:3px}#callUs a{width:66px;height:66px}#wt-cli-accept-all-btn{width:100%!important;text-align:center}}@media (max-width:575px),(max-width:575px) and (-webkit-min-device-pixel-ratio:1.5){#menuSlideOut{margin-top:30px}}@media (max-width:414px),(max-width:414px) and (-webkit-min-device-pixel-ratio:1.5){#notHomeImg.logoImg{width:140px}}@media (max-width:350px),(width-max:350px) and (-webkit-min-device-pixel-ratio:1.5){#slideOutNavInner{padding:30px}}.modal iframe{height:500px}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem}.modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);transform:translate(0,-25%)}.modal-dialog-centered{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;min-height:calc(100% - (.5rem*2))}.modal-content{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;width:100%;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-centered{min-height:calc(100% - (1.75rem*2))}}@media (min-width:992px){.modal-lg{max-width:800px}}body{-webkit-font-feature-settings:"liga";font-feature-settings:"liga";-ms-font-feature-settings:normal}#callUs .callUsIcon img{width:60px;height:90px}.cookielawinfo-column-1{width:25%}.cookielawinfo-column-3{width:15%}.cookielawinfo-column-4{width:50%}table.cookielawinfo-winter{font:85% "Lucida Grande","Lucida Sans Unicode","Trebuchet MS",sans-serif;padding:0;margin:10px 0 20px;border-collapse:collapse;color:#333;background:#f3f5f7}table.cookielawinfo-winter thead th{background:#3a4856;padding:15px 10px;color:#fff;text-align:left;font-weight:400}table.cookielawinfo-winter tbody{border-left:1px solid #eaecee;border-right:1px solid #eaecee}table.cookielawinfo-winter tbody{border-bottom:1px solid #eaecee}table.cookielawinfo-winter tbody td{padding:10px;text-align:left}table.cookielawinfo-winter tbody tr{background:#f3f5f7}@media (max-width:800px){table.cookielawinfo-row-cat-table td,table.cookielawinfo-row-cat-table th{width:23%;font-size:12px}table.cookielawinfo-row-cat-table .cookielawinfo-column-4,table.cookielawinfo-row-cat-table .cookielawinfo-column-4{width:45%}}.cookielawinfo-row-cat-table{width:99%;margin-left:5px;word-wrap:break-word;table-layout:fixed}.cli-tab-section .cookielawinfo-row-cat-table{width:100%;margin-left:0}.cli-tab-section .cookielawinfo-row-cat-table td,.cli-tab-section .cookielawinfo-row-cat-table th{font-size:12px}</style><link rel="preload" data-asynced="1" data-optimized="2" as="style" onload="this.onload=null;this.rel='stylesheet'" href="https://codelab.eu/wp-content/litespeed/css/0c5e62b6d9108c08b6755a772f68361b.css?ver=2ad71" />
3<script data-optimized="1" src="https://codelab.eu/wp-content/plugins/litespeed-cache/assets/js/css_async.min.js" defer></script>
3
3<script id="jquery-core-js" src="https://codelab.eu/wp-includes/js/jquery/jquery.min.js"></script>
3
3<script data-optimized="1" id="jquery-migrate-js" src="https://codelab.eu/wp-content/litespeed/js/f5f2ab404dcc9a3af6fbdd6927822c74.js?ver=22c74" defer data-deferred="1"></script>
vendor: 82 bytes, lines 3-4
3 4 <script id="google_gtagjs-js" src="https://www.googletagmanager.com/gtag/js?id=
4GT-PHR6KTG
vendor: 36 bytes, line 4
4" defer data-deferred="1"></script>
4<script id="google_gtagjs-js-after" src="data:text/javascript;base64,d2luZG93LmRhdGFMYXllcj13aW5kb3cuZGF0YUxheWVyfHxbXTtmdW5jdGlvbiBndGFnKCl7ZGF0YUxheWVyLnB1c2goYXJndW1lbnRzKX0KZ3RhZygic2V0IiwibGlua2VyIix7ImRvbWFpbnMiOlsiY29kZWxhYi5ldSJdfSk7Z3RhZygianMiLG5ldyBEYXRlKCkpO2d0YWcoInNldCIsImRldmVsb3Blcl9pZC5kWlROaU1UIiwhMCk7Z3RhZygiY29uZmlnIiwiR1QtUEhSNktURyIp" defer></script>
4 <link rel="image_src" href="https://codelab.eu/wp-content/uploads/2020/07/car-s.jpg"><meta name="msapplication-TileImage" content="https://codelab.eu/wp-content/uploads/2020/07/car-s.jpg"><meta property="og:image" content="https://codelab.eu/wp-content/uploads/2020/07/car-s.jpg"><meta property="og:image:secure_url" content="https://codelab.eu/wp-content/uploads/2020/07/car-s.jpg"><meta property="og:image:width" content="700"><meta property="og:image:height" content="700"><meta property="og:image:alt" content="car-s"><meta property="og:image:type" content="image/jpeg"><meta property="og:description" content="Product Development Engineering"><meta property="og:type" content="article"><meta property="og:locale" content="en_GB"><meta property="og:site_name" content="Codelab"><meta property="og:title" content="Product Development Engineering"><meta property="og:url" content="https://codelab.eu/en/services/product-development-engineering/"><meta property="og:updated_time" content="2020-10-15T14:16:09+02:00"><meta property="article:published_time" content="2020-07-09T13:52:52+00:00"><meta property="article:modified_time" content="2020-10-15T12:16:09+00:00"><meta property="article:author:first_name" content="MichaÅ"><meta property="article:author:last_name" content="Krempa"><meta property="article:author:username" content="MichaÅ Krempa"><meta property="twitter:partner" content="ogwp"><meta property="twitter:card" content="summary_large_image"><meta property="twitter:image" content="https://codelab.eu/wp-content/uploads/2020/07/car-s.jpg"><meta property="twitter:image:alt" content="car-s"><meta property="twitter:title" content="Product Development Engineering"><meta property="twitter:description" content="Product Development Engineering"><meta property="twitter:url" content="https://codelab.eu/en/services/product-development-engineering/"><meta property="twitter:label1" content="Reading time"><meta property="twitter:data1" content="Less than a minute"><meta itemprop="image" content="https://codelab.eu/wp-content/uploads/2020/07/car-s.jpg"><meta itemprop="name" content="Product Development Engineering"><meta itemprop="description" content="Product Development Engineering"><meta itemprop="datePublished" content="2020-07-09"><meta itemprop="dateModified" content="2020-10-15T12:16:09+00:00"><meta property="profile:first_name" content="MichaÅ"><meta property="profile:last_name" content="Krempa"><meta property="profile:username" content="MichaÅ Krempa"><link rel="https://api.w.org/" href="https://codelab.eu/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://codelab.eu/wp-json/wp/v2/pages/513" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://codelab.eu/xmlrpc.php?rsd" /><link rel='shortlink' href='https://codelab.eu/?p=513' /><meta name="generator" content="Site Kit by Google 1.188.0" />
4<script data-optimized="1" class="hsq-set-content-id" data-content-id="standard-page" src="data:text/javascript;base64,dmFyIF9oc3E9X2hzcXx8W107X2hzcS5wdXNoKFsic2V0Q29udGVudFR5cGUiLCJzdGFuZGFyZC1wYWdlIl0p" defer></script>
4
4<script data-optimized="1" type="text/javascript" src="data:text/javascript;base64,KGZ1bmN0aW9uKGMsbCxhLHIsaSx0LHkpe2NbYV09Y1thXXx8ZnVuY3Rpb24oKXsoY1thXS5xPWNbYV0ucXx8W10pLnB1c2goYXJndW1lbnRzKX07dD1sLmNyZWF0ZUVsZW1lbnQocik7dC5hc3luYz0xO3Quc3JjPSJodHRwczovL3d3dy5jbGFyaXR5Lm1zL3RhZy8iK2krIj9yZWY9d29yZHByZXNzIjt5PWwuZ2V0RWxlbWVudHNCeVRhZ05hbWUocilbMF07eS5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0LHkpfSkod2luZG93LGRvY3VtZW50LCJjbGFyaXR5Iiwic2NyaXB0IiwieHQxa3BqYjB2aSIp" defer></script>
4 5
5<script data-optimized="1" src="data:text/javascript;base64,IWZ1bmN0aW9uKGYsYixlLHYsbix0LHMpe2lmKGYuZmJxKXJldHVybjtuPWYuZmJxPWZ1bmN0aW9uKCl7bi5jYWxsTWV0aG9kP24uY2FsbE1ldGhvZC5hcHBseShuLGFyZ3VtZW50cyk6bi5xdWV1ZS5wdXNoKGFyZ3VtZW50cyl9O2lmKCFmLl9mYnEpZi5fZmJxPW47bi5wdXNoPW47bi5sb2FkZWQ9ITA7bi52ZXJzaW9uPScyLjAnO24ucXVldWU9W107dD1iLmNyZWF0ZUVsZW1lbnQoZSk7dC5hc3luYz0hMDt0LnNyYz12O3M9Yi5nZXRFbGVtZW50c0J5VGFnTmFtZShlKVswXTtzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHQscyl9KHdpbmRvdyxkb2N1bWVudCwnc2NyaXB0JywnaHR0cHM6Ly9jb25uZWN0LmZhY2Vib29rLm5ldC9lbl9VUy9mYmV2ZW50cy5qcycpO2ZicSgnaW5pdCcsJzE1NzAyNDAyNzMxNzQ0OTAnKTtmYnEoJ3RyYWNrJywnUGFnZVZpZXcnKQ==" defer></script>
5 <noscript><img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=1570240273174490&ev=PageView&noscript=1" /></noscript>
5<script data-cfasync="false" data-pagespeed-no-defer type="text/javascript">var dataLayer_content = {"pagePostType":"page","pagePostType2":"single-page","pagePostAuthor":"MichaÅ Krempa"}; 6 dataLayer.push( dataLayer_content );</script>
6
6<script data-cfasync="false" data-pagespeed-no-defer type="text/javascript">
vendor: 321 bytes, lines 6-10
6(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 7new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 8j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 9'//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 10})(window,document,'script','dataLayer','
10GTM-M3FV2Z6
vendor: 3 bytes, line 10
10');
10</script>
10 </head><body class="wp-singular page-template page-template-page-service-expertise page-template-page-service-expertise-php page page-id-513 page-child parent-pageid-494 wp-theme-customTpl mobile-shift" data-spy="scroll" data-target="#siebar" data-offset="200">
10<script src="data:text/javascript;base64,d2luZG93LmRhdGFMYXllcj13aW5kb3cuZGF0YUxheWVyfHxbXTtsZXQgZm9ybUlEPWpRdWVyeSh0aGlzKS5hdHRyKCdhY3Rpb24nKTtsZXQgbmFtZT1qUXVlcnkodGhpcykuZmluZCgnaW5wdXRbbmFtZT15b3VyLW5hbWVdJykudmFsKCk7bGV0IGVtYWlsPWpRdWVyeSh0aGlzKS5maW5kKCdpbnB1dFtuYW1lPXlvdXItZW1haWxdJykudmFsKCk7bGV0IHBob25lPWpRdWVyeSh0aGlzKS5maW5kKCdpbnB1dFtuYW1lPXlvdXItcGhvbmVdJykudmFsKCk7bGV0IG1lc3NhZ2U9alF1ZXJ5KHRoaXMpLmZpbmQoJ3RleHRhcmVhJykudmFsKCk7ZGF0YUxheWVyLnB1c2goeydmb3JtX0lEJzpmb3JtSUQsJ25hbWUnOm5hbWUsJ2VtYWlsJzplbWFpbCwncGhvbmUnOnBob25lLCdtZXNzYWdlJzptZXNzYWdlfSk=" defer></script>
10 <noscript><iframe data-lazyloaded="1" src="about:blank" data-src="https://www.googletagmanager.com/ns.html?id=GTM-M3FV2Z6" height="0" width="0" style="display:none;visibility:hidden" aria-hidden="true"></iframe></noscript> 11<a class="sr-only sr-only-focusable skipMain" href="#section-0">Go to main section</a> 12<a class="sr-only sr-only-focusable skipMain" href="#footer">Go to footer</a><div id="masthead" class="mastheadNotHome"><div class="container height100"><div class="navbarLockup d-flex align-items-center justify-content-between height100"><div id="notHomeImg" class="logoImg"> 13<a href="/" rel="home"> 14<img src="https://codelab.eu/wp-content/uploads/2020/07/logo-header.svg" alt="logo-header"> 15</a></div><nav id="topMenu" class="height100 topMenu d-flex align-items-center justify-content-start" role="navigation"><div class="menu-header"><ul id="menu-top-menu-en" class="menu height100 nav d-flex"><li id="menu-item-712" class="menu-item menu-item-type-post_type menu-item-object-page current-page-ancestor current-menu-ancestor current-menu-parent current-custom-parent current_page_parent current_page_ancestor menu-item-has-children menu-item-712"><a href="https://codelab.eu/en/services/">Services <i class="far fa-angle-down"></i></a><ul class="no-list dropdown-menu list-unstyled"><li id="menu-item-43380" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-43380"><a href="https://lp.codelab.eu/cra">Cyber Resilience Act (CRA)</a></li><li id="menu-item-43182" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-43182"><a href="https://lp.codelab.eu/test-automation-lab">Test Automation Lab</a></li><li id="menu-item-43445" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-43445"><a href="https://codelab.eu/lsr">Legacy Software Redesign</a></li><li id="menu-item-1055" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1055"><a href="https://codelab.eu/en/services/software-development/">Software Development</a></li><li id="menu-item-713" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-513 current_page_item menu-item-713"><a href="https://codelab.eu/en/services/product-development-engineering/" aria-current="page">Product Development Engineering</a></li><li id="menu-item-40626" class="menu-item menu-item-type-post_type menu-item-object-landing menu-item-40626"><a href="https://codelab.eu/en/landing/sonar/">Sonar Clean Code</a></li><li id="menu-item-9267" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-9267"><a href="https://codelab.eu/en/speed-up-software-releases/">CI/CD Services</a></li><li id="menu-item-715" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-715"><a href="https://codelab.eu/en/services/test-engineering/">Test Engineering</a></li><li id="menu-item-43181" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-43181"><a href="https://lp.codelab.eu/en/apphealthcheck-audit-legacy-modernization-fast-track">AppHealth Check</a></li><li id="menu-item-43520" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-43520"><a href="https://lp.codelab.eu/securestack-audit-for-legacy-systems">Secure Stack Audit</a></li><li id="menu-item-43446" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-43446"><a href="https://codelab.eu/uxui">UX/UI Refresh for Legacy Systems</a></li></ul></li><li id="menu-item-716" class="multiCol menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-716"><a href="https://codelab.eu/en/expertise/">Expertise <i class="far fa-angle-down"></i></a><ul class="no-list dropdown-menu list-unstyled"><li id="menu-item-5269" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-5269"><a href="https://codelab.eu/en/expertise/automotive-expertise/">Automotive Expertise</a></li><li id="menu-item-5270" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-5270"><a href="https://codelab.eu/en/expertise/industrial-internet-of-things-2/">Industrial Internet of Things</a></li><li id="menu-item-1047" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1047"><a href="https://codelab.eu/en/expertise/mobile-software-development/">Mobile Software Development</a></li><li id="menu-item-1016" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1016"><a href="https://codelab.eu/en/expertise/embedded-product-engineering/">Embedded Product Engineering</a></li><li id="menu-item-718" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-718"><a href="https://codelab.eu/en/expertise/embedded-low-level-software/">
15Embedded Low Level Software</a></li><li id="menu-item-1130" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1130"><a href="https://codelab.eu/en/expertise/human-machine-interface/">Human Machine Interface</a></li><li id="menu-item-1126" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1126"><a href="https://codelab.eu/en/expertise/machine-learning/">Machine Learning & AI</a></li><li id="menu-item-720" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-720"><a href="https://codelab.eu/en/expertise/enterprise-software-development/">Enterprise Software Development</a></li><li id="menu-item-1192" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1192"><a href="https://codelab.eu/en/expertise/quality-assurance/">Quality Assurance</a></li></ul></li><li id="menu-item-42935" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-42935"><a href="https://codelab.eu/en/case-studies/">Case studies</a></li><li id="menu-item-2451" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-2451"><a href="https://codelab.eu/en/blog/">Blog</a></li><li id="menu-item-726" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-726"><a href="https://codelab.eu/en/career/">Career</a></li><li id="menu-item-727" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-727"><a href="https://codelab.eu/en/contact/">Contact</a></li><li id="menu-item-1193" class="pll-parent-menu-item menu-item menu-item-type-custom menu-item-object-custom current-menu-parent menu-item-has-children menu-item-1193"><a href="#pll_switcher"><img src="/wp-content/themes/customTpl/polylang/en_GB.svg" alt><span style="margin-left:0.3em;">EN</span> <i class="far fa-angle-down"></i></a><ul class="no-list dropdown-menu list-unstyled"><li id="menu-item-1193-pl" class="lang-item lang-item-2 lang-item-pl lang-item-first menu-item menu-item-type-custom menu-item-object-custom menu-item-1193-pl"><a href="https://codelab.eu/pl/uslugi/inzynieria-rozwoju-produktu/" hreflang="pl-PL" lang="pl-PL"><img src="/wp-content/themes/customTpl/polylang/pl_PL.svg" alt><span style="margin-left:0.3em;">PL</span></a></li><li id="menu-item-1193-en" class="lang-item lang-item-17 lang-item-en current-lang menu-item menu-item-type-custom menu-item-object-custom menu-item-1193-en"><a href="https://codelab.eu/en/services/product-development-engineering/" hreflang="en-GB" lang="en-GB"><img src="/wp-content/themes/customTpl/polylang/en_GB.svg" alt><span style="margin-left:0.3em;">EN</span></a></li><li id="menu-item-1193-de" class="lang-item lang-item-21 lang-item-de menu-item menu-item-type-custom menu-item-object-custom menu-item-1193-de"><a href="https://codelab.eu/de/produktentwicklung/" hreflang="de-DE" lang="de-DE"><img src="/wp-content/themes/customTpl/polylang/de_DE.svg" alt><span style="margin-left:0.3em;">DE</span></a></li></ul></li></ul></div></nav></div></div></div><header id="header" class="container-fluid section section-lines" role="banner" aria-label="Product 16Development 17Engineering"><div class="animatedColorLines" data-lines-offset="0.8" data-lines=''></div><div class="row siteHeader height100"><div class="col-12 col-lg-8 col-xl-6 descCol descColBlack d-flex align-items-center justify-content-end height100"><div class="headerInner"><div class="sloganBlock"><h1>Product <br /> 18Development <br /> 19Engineering</h1></div><div class="descBlock"><p><strong>Our customers trust in more than 20 years Engineering expertise and a pioneer of Automotive Software Development in nearshore destinations.</strong> We provide complex embedded systems, high performance Software for full cycle development projects.</p></div></div></div><div class="col-12 col-lg-4 col-xl-6 imgBgCol d-flex align-items-center justify-content-start height100"><div class="imgBgInner"> 20<img src="https://codelab.eu/wp-content/uploads/2020/07/car-drape2.png.webp" alt="car-drape2" /></div></div></div><div class="downArrow arrowLight"> 21<a href="#section-1" role="button" aria-label="Go to the next section"> 22<i class="far fa-angle-double-down"></i> 23</a></div></header><section role="region" id="section-0" class="container-fluid section section-service column-layout lazy section-bg bg-top-right grey-section" data-bg="https://codelab.eu/wp-content/uploads/2020/07/question-mark-top.jpg">
23<div class="row sectionInner "><div class="col-12"><div class="panelInnerTitle2"><div class="sloganBlock text-left"><h2 >why<br /> 24codelab</h2></div><div class="btnWrap d-flex"></div></div><div class="row panelInner2" aria-label="why 25codelab"><div class="col col-12 col-md-6 col-lg-4 repDescBlock topLines"><div class="repDescBlockWrap"><div class="repDescBlockInner"><div><div><div><h3>fast, reliable results</h3><p>We have a focus on efficient project management, that results in <strong>fast decision-making</strong>, reliable project schedules and early results or prototypes. We speak the <strong>language of our customers</strong> and can draw on ample project experience in order to deliver on our promises.</p></div></div></div></div></div></div><div class="col col-12 col-md-6 col-lg-4 repDescBlock topLines"><div class="repDescBlockWrap"><div class="repDescBlockInner"><div><div><div><h3>quality & robustness</h3><p>We mostly operate in industries with <strong>very high security standards</strong> (e.g. Automotive, Avionics). Our entire pro ceses and organization is aligned towards high-quality output and robustness of our software.</p></div></div></div></div></div></div><div class="col col-12 col-md-6 col-lg-4 repDescBlock topLines"><div class="repDescBlockWrap"><div class="repDescBlockInner"><div><div><div><h3>fair pricing</h3><p>If you want to provide <strong>high-quality software at competitive pricing</strong>, this requires the following: First, no waste of time due to inefficient project management. Second, access to Nearshore resources. Third, efficient use of framework ecosystems based on long-standing expertise. Thatâs Codelab!</p></div></div></div></div></div></div></div></div></div><div class="downArrow arrowDark"> 26<a href="#section-1" role="button" aria-label="Go to the next section"> 27<i class="far fa-angle-double-down"></i> 28</a></div></section><section role="region" id="section-1" class="container-fluid section section-service swiper-layout lazy section-bg dark-grey-section" data-bg="https://codelab.eu/wp-content/uploads/2020/07/mosue.jpg"><div class="row sectionInner"><div class="col-12"><div class="panelInnerTitle2"><div class="sloganBlock"><h2>our areas of expertise</h2><div><p>Based on more than 20 years of Company History</p></div></div></div><div class="panelInner2" aria-label="our areas of expertise"><div class="swiper-container"><div class="swiper-wrapper"><div class="repDescBlock swiper-slide"><h3>Embedded Product Engineering</h3><div class="repDescBlockInner"><p>Low Level Software / Middleware / Connectivity / Human Machine Interfaces / Automotive ECUs / AUTOSAR / RT and Embedded Operating Systems</p></div><div class="btnBlock arrowRight"> 29<a role="button" aria-label="Learn more" href="https://codelab.eu/en/expertise/embedded-product-engineering/" class="btn"><span>Learn more</span><i class="far fa-arrow-right"></i></a></div></div><div class="repDescBlock swiper-slide"><h3>Low Level Software</h3><div class="repDescBlockInner"><p>Linux Kernel Mods / Bare Metal Firmware /BSP / Hardware Drivers / Driver Optimization Services / Video Data Analysis / Machine Learning / Optimization of CPU Usage / Autonomous Driving</p></div><div class="btnBlock arrowRight"> 30<a role="button" aria-label="Learn more" href="https://codelab.eu/en/expertise/embedded-low-level-software/" class="btn"><span>Learn more</span><i class="far fa-arrow-right"></i></a></div></div><div class="repDescBlock swiper-slide"><h3>Human Machine Interfaces</h3><div class="repDescBlockInner"><p>Screen Design / Automotive HMI / Non Automotive HMI / Speech Control / NLPÂ / Infotainment / Instrument Cluster & Digital Cockpit</p></div><div class="btnBlock arrowRight"> 31<a role="button" aria-label="Learn more" href="https://codelab.eu/en/expertise/human-machine-interface/" class="btn"><span>Learn more</span><i class="far fa-arrow-right"></i></a></div></div><div class="repDescBlock swiper-slide"><h3>Quality Assurance</h3><div class="repDescBlockInner"><p>A-SPICE L3 / Eclipse Framework / Functional Safety / ISO 9001 / ISO 15504 ISO 26262 / Air Bags Test Automation, ASIL D requirements / HIL / SIL / PIL /</p></div><div class="btnBlock arrowRight"> 32<a role="button" aria-label="Learn more" href="https://codelab.eu/en/expertise/quality-assurance/" class="btn"><span>Learn more</span><i class="far fa-arrow-right"></i></a></div></div></div><div class="swiperPaginationInner"><div class="swiper-pagination-custom"></div></div></div></div></div></div><div class="downArrow arrowLight"> 33<a href="#section-2" role="button" aria-label="Go to the next section"> 34<i class="far fa-angle-double-down"></i> 35</a></div></section>
35<script data-optimized="1" src="data:text/javascript;base64,alF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpe3ZhciBzd2lwZXIxPW5ldyBTd2lwZXIoJyNzZWN0aW9uLTEgLnN3aXBlci1jb250YWluZXInLHtzbGlkZXNQZXJWaWV3OjEsc3BhY2VCZXR3ZWVuOjIwLGxvb3A6ITAsa2V5Ym9hcmQ6e2VuYWJsZWQ6ITAsb25seUluVmlld3BvcnQ6ITAsfSxwYWdpbmF0aW9uOntlbDonI3NlY3Rpb24tMSAuc3dpcGVyLXBhZ2luYXRpb24tY3VzdG9tJyxjbGlja2FibGU6ITAsfSxicmVha3BvaW50czp7NzY3OntzbGlkZXNQZXJWaWV3OjIsc3BhY2VCZXR3ZWVuOjEwMCx9LH19KX0p" defer></script>
35 <section role="region" id="section-2" class="container-fluid section section-service column-layout lazy section-bg bg-top-left grey-section" data-bg="https://codelab.eu/wp-content/uploads/2020/07/bulb-left.jpg"><div class="row sectionInner "><div class="col-12"><div class="panelInnerTitle2"><div class="sloganBlock text-right"><h2 >Which type of Project <br /> 36Management do you prefer?</h2></div><div class="btnWrap d-flex"></div></div><div class="row panelInner2" aria-label="Which type of Project 37Management do you prefer?"><div class="col col-12 col-md-6 col-lg-4 repDescBlock rightLines"><div class="repDescBlockWrap"><div class="repDescBlockInner"><h3 style="text-align: right;">Agile / Scrum The</h3><p style="text-align: right;"><strong>âThink big, start smallâ- approach</strong>: Based on Agile Project Management Methods we start implementing an MVP (Minimal Viable Product), that is growing in iterative steps.</p><p style="text-align: right;">We have been applying SCRUM as an Agile Method for more than 10 years and have<br /> 38well-established best-practices with this approach.</p><p><img decoding="async" class="alignright wp-image-972" src="https://codelab.eu/wp-content/uploads/2020/07/project01.png" alt="Agile" width="152" height="100" srcset="https://codelab.eu/wp-content/uploads/2020/07/project01.png 525w, https://codelab.eu/wp-content/uploads/2020/07/project01-300x197.png 300w" sizes="(max-width: 152px) 100vw, 152px" /></p></div></div></div><div class="col col-12 col-md-6 col-lg-4 repDescBlock rightLines"><div class="repDescBlockWrap"><div class="repDescBlockInner"><h3 style="text-align: right;">Waterfall</h3><p style="text-align: right;"><strong>This is the âOrder-and-Deliverâ- approach</strong>: Either you have available requirements specifications or we establish such specifications in one or more workshops.</p><p style="text-align: right;">Based on such documentation we devise a robust and salable software architecture, implement and test the features. Only little involvement will be required from your team.</p><p><img decoding="async" class="alignright wp-image-973" src="https://codelab.eu/wp-content/uploads/2020/07/project02.png" alt="Waterfall" width="152" height="100" srcset="https://codelab.eu/wp-content/uploads/2020/07/project02.png 525w, https://codelab.eu/wp-content/uploads/2020/07/project02-300x197.png.webp 300w" sizes="(max-width: 152px) 100vw, 152px" /></p></div></div></div><div class="col col-12 col-md-6 col-lg-4 repDescBlock rightLines"><div class="repDescBlockWrap"><div class="repDescBlockInner"><h3 style="text-align: right;">V-Model</h3><p style="text-align: right;"><strong>This approach is a derivative of the âWaterfallâ-Model</strong>. The Major difference is a definition of testing approach and test cases during the planning phase at the beginning.</p><p style="text-align: right;">For our customers this doesnât make a big difference: Little involvement is required,<br /> 39once the requirement specification is ready.</p><p><img decoding="async" class="alignright wp-image-974" src="https://codelab.eu/wp-content/uploads/2020/07/project03.png" alt="V-Model" width="152" height="100" srcset="https://codelab.eu/wp-content/uploads/2020/07/project03.png 525w, https://codelab.eu/wp-content/uploads/2020/07/project03-300x197.png 300w" sizes="(max-width: 152px) 100vw, 152px" /></p></div></div></div></div></div></div><div class="downArrow arrowDark"> 40<a href="#section-3" role="button" aria-label="Go to the next section"> 41<i class="far fa-angle-double-down"></i> 42</a></div></section><section role="region" id="section-3" class="container-fluid section section-service column-layout lazy section-bg bg-top-right dark-grey-section" data-bg="https://codelab.eu/wp-content/uploads/2020/07/4-cones.jpg"><div class="row sectionInner "><div class="col-12"><div class="panelInnerTitle2"><div class="sloganBlock text-left"><h2 >From your request to <br /> 43the final delivery</h2><div class="sloganBlockDesc"><p><strong>OVERVIEW OF THE PROCESS</strong></p></div></div><div class="btnWrap d-flex"></div></div><div class="row panelInner2" aria-label="From your request to 44the final delivery"><div class="col col-12 col-md-6 repDescBlock leftLines"><div class="repDescBlockWrap"><div class="repDescBlockInner"><h3>Free Consulting & Definition of Project Scope</h3><p><strong>Get Free Consulting to get an idea of the feasibility of your idea for a Product / Engineering Project.</strong></p><p>Receive Free Consultation to get an idea of the feasibility of your idea for a Product / Engineering</p><p>Project: We can make you a fixed price offer, if detailed specifications are available (or we can even generate such a document). If you prefer an Agile approach, we propose Time & Material, Fixed Price per Sprint, Guaranteed Minimum Scope of Delivery or âMoney for Nothing, Change for Freeâ</p></div></div></div><div class="col col-12 col-md-6 repDescBlock leftLines"><div class="repDescBlockWrap"><div class="repDescBlockInner"><h3>Implementation & Integration</h3><p><strong>In general, implementation and Feedback Phases will follow your chosen Project Management Method: Waterfall, V-Model or Agile/Scrum.</strong></p><p>We help you with System Design: From choosing an operating system to evaluation of frameworks. Product Development Engineering may include: Device Driver Development, Hardware Design (with Partner companies), BSP, Software Architecture Design and the like Integration: We bring all embedded components together</p></div></div></div><div class="col col-12 col-md-6 repDescBlock leftLines"><div class="repDescBlockWrap"><div class="repDescBlockInner"><h3>Testing & Finetuning</h3><p><strong>
44Comprehensive Quality Assurance with HIL, SIL, PIL, unit testing, system testing and User Acceptance tests.</strong></p><p>Your feedback will be considered for finetuning of the Product</p></div></div></div><div class="col col-12 col-md-6 repDescBlock leftLines"><div class="repDescBlockWrap"><div class="repDescBlockInner"><h3>Delivery, Support & Add-Ons</h3><p><strong>On completion of the Product development youâll receive the invoice.</strong></p><p>We offer maintenance and support. We are at your service for implementation of any required Add-Ons</p></div></div></div></div></div></div><div class="downArrow arrowBrown"> 45<a href="#section-4" role="button" aria-label="Go to the next section"> 46<i class="far fa-angle-double-down"></i> 47</a></div></section><footer role="contentinfo" id="section-4" class="footer container-fluid section section-lines" ><div class="colorLines"> 48<svg 49xmlns="http://www.w3.org/2000/svg" 50xmlns:xlink="http://www.w3.org/1999/xlink" 51width="564px" height="1089px"> 52<path fill-rule="evenodd" stroke="rgb(122, 184, 0)" stroke-width="2px" stroke-linecap="square" stroke-linejoin="miter" fill="none" 53d="M70.000,4.000 C-261.624,515.564 777.726,518.427 372.000,1084.000 "/> 54<path fill-rule="evenodd" stroke="rgb(239, 171, 31)" stroke-width="2px" stroke-linecap="square" stroke-linejoin="miter" fill="none" 55d="M192.000,4.000 C-139.624,515.564 -40.571,877.501 529.000,1084.000 "/> 56<path fill-rule="evenodd" stroke="rgb(223, 85, 38)" stroke-width="2px" stroke-linecap="square" stroke-linejoin="miter" fill="none" 57d="M347.000,4.000 C-309.842,665.389 611.174,611.387 182.000,1084.000 "/> 58<path fill-rule="evenodd" stroke="rgb(171, 110, 201)" stroke-width="2px" stroke-linecap="square" stroke-linejoin="miter" fill="none" 59d="M561.000,4.000 C-193.418,457.746 441.568,631.837 77.000,1084.000 "/> 60</svg></div><div id="footer" class="sectionInner"><div class="row rowTop"><div id="footer-1" class="col-12 col-lg-6 colSlogans"><p>We know,<br /> 61we care,<br /> 62<em>we do</em></p></div><div id="footer-2" class="col-12 col-lg-6 colCompanyDesc"><div id="footer-menu"><div class="innerFooter"><div class="logoImg"> 63<a href="/" rel="home"> 64<img class="lazy" loading="lazy" src="https://codelab.eu/wp-content/uploads/2020/07/logo-footer.svg" alt="logo-footer"> 65</a></div><div class="companyDesc"><div class="companyDescInner"><p><strong>Codelab Sp. z o.o.</strong></p><p>ul. Zbożowa 4,<br /> 6670-653 Szczecin, Poland</p><p><strong>NIP</strong> 851-31-69-010</p><p><strong>KRS</strong> 0000461356</p><p><strong>REGON</strong> 321372658</p><p><strong>Phone</strong> <a href="tel:0048918199116">+48 91 819 9116</a></p></div><div class="companySocial mt-5"><ul class="socialIcons list-style-no"><li> 67<a target="_blank" rel="nofollow" href="https://www.facebook.com/codelab.eu" class="social-link" data-social-network="Facebook"> 68<i class="fab fa-facebook-f" style="color: #2c74ed"></i> <span>Facebook</span> 69</a></li><li> 70<a target="_blank" rel="nofollow" href="https://www.instagram.com/codelabeu" class="social-link" data-social-network="Instagram"> 71<i class="fab fa-instagram" style="color: #c12d6a"></i> <span>Instagram</span> 72</a></li><li> 73<a target="_blank" rel="nofollow" href="https://www.linkedin.com/company/codelabeu/mycompany/" class="social-link" data-social-network="LinkedIn"> 74<i class="fab fa-linkedin-in" style="color: #1771ab"></i> <span>LinkedIn</span> 75</a></li></ul></div><div class="footer-virtual-tours"> 76<a href="#" data-toggle="modal" data-target="#modalWroclaw"><?xml version="1.0" encoding="UTF-8"?><svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 25 25"><defs></defs><path class="cls-1" d="m23.21,1.71c-1.09-1.1-3.23-2.01-7.26-.16-.61.28-1.23.61-1.86.99.57-.16,12.8-3.51,5.21,6.93h0c-.77,1.23-1.72,2.5-2.8,3.75l-.97-.98-.19,4.92,4.89-.19-1.32-1.32c1.94-2.21,3.5-4.51,4.46-6.63,1.84-4.05.93-6.21-.16-7.31Zm-8.39,13.3c-1.65,1.65-3.4,3.09-5.09,4.18,0,0,0,0,0,0C-.08,25.93,2.31,15.56,2.67,14.14l-.05-.05c-.38.64-.71,1.28-.99,1.89-1.84,4.05-.93,6.21.16,7.31,1.09,1.1,3.23,2.01,7.26.16,2.54-1.17,5.35-3.21,7.95-5.77l-2.15-.02-.02-2.65Zm-12.22-3.83c-.45,0-.84-.11-1.21-.33l-.21-.13-.6.95.16.12c.49.35,1.07.53,1.73.53.85,0,1.56-.2,2.1-.59.55-.41.83-.95.83-1.61,0-.44-.15-.81-.43-1.11-.19-.2-.43-.35-.7-.45.39-.35.59-.67.59-.98,0-.39-.18-.71-.52-.94-.33-.22-.73-.33-1.21-.33-.53,0-1,.12-1.42.37-.42.25-.73.59-.92,1.01l-.08.19,1.02.45.1-.2c.1-.2.27-.38.5-.53.23-.15.48-.23.76-.23.5,0,.5.16.5.23,0,.05-.04.23-.52.62-.32.26-.7.49-1.12.7l-.23.11.64.9.2-.15c.26-.19.53-.29.8-.29.21,0,.38.06.52.19.14.13.21.28.21.47,0,.27-.14.51-.42.72-.3.22-.65.33-1.06.33Zm5.64,1.13c.63,0,1.15-.2,1.56-.59.4-.39.61-.87.61-1.44s-.21-1.04-.62-1.43c-.41-.39-.92-.58-1.52-.58-.16,0-.31.01-.45.04.16-.15.34-.3.54-.44.48-.32,1-.55,1.53-.67l.2-.05-.14-.99-.24.04c-1.14.19-2.07.65-2.78,1.36-.72.71-1.08,1.55-1.08,2.48,0,.68.23,1.23.68,1.65.45.42,1.03.63,1.71.63Zm-.72-2.72c.19-.18.42-.27.69-.27.25,0,.47.09.66.29.19.2.29.42.29.67s-.09.48-.29.67c-.19.19-.4.28-.66.28-.27,0-.5-.09-.69-.28-.2-.19-.29-.41-.29-.68s.09-.5.29-.69Zm5.65,2.73c.78,0,1.39-.31,1.81-.92.4-.58.6-1.29.6-2.1s-.2-1.52-.6-2.1c-.42-.61-1.03-.92-1.81-.92s-1.35.31-1.77.92c-.4.58-.6,1.29-.6,2.1s.2,1.52.6,2.1c.42.61,1.01.92,1.77.92Zm-.74-4.5c.18-.33.42-.48.77-.48s.58.15.75.48c.2.37.3.87.3,1.48s-.1,1.11-.3,1.48c-.18.33-.42.48-.77.48s-.58-.15-.75-.48c-.2-.37-.3-.87-.3-1.48s.1-1.11.3-1.48Zm3.19-1.67c.76,0,1.37-.57,1.37-1.26s-.62-1.27-1.37-1.27-1.37.57-1.37,1.27.62,1.26,1.37,1.26Zm0-2.12c.51,0,.92.38.92.85s-.41.85-.92.85-.92-.38-.92-.85.41-.85.92-.85Z"/></svg>Virtual Tour WrocÅaw Office</a></div><div class="companyIso mt-2"><ul class="isoLogotpes list-style-no d-flex d-flex-wrap"><li> 77<a target="_blank" rel="nofollow" href="https://codelab.eu/en/quality-first"> 78<img class="lazy" data-src="https://codelab.eu/wp-content/uploads/2023/12/InformationSecuritySys_ISOIEC27001.svg" alt="informationsecuritysys_isoiec27001"> 79</a></li><li> 80<a target="_blank" rel="nofollow" href="https://codelab.eu/en/quality-first"> 81<img class="lazy" data-src="https://codelab.eu/wp-content/uploads/2023/12/QualitySystCert_ISO9001.svg" alt="qualitysystcert_iso9001"> 82</a></li><li> 83<a target="_blank" rel="nofollow" href="https://codelab.eu/en/quality-first"> 84<img class="lazy" data-src="https://codelab.eu/wp-content/uploads/2021/06/white_tisax.svg" alt="white_tisax"> 85</a></li></ul></div><div class="softgarden-certificate"> 86<iframe data-lazyloaded="1" src="about:blank" data-src="https://certificate.softgarden.io/widget-new/codelab/pl"></iframe></div></div></div></div></div></div><div class="row rowBottom"><div id="footer-3" class="col-12 col-lg-6 colCopy"><p>© 2026 | Codelab All Rights Reserved</p></div><div id="footer-4" class="col-12 col-lg-6 colFooterMenu"><nav id="footer-menu" class="innerFooter" role="navigation"><div class="menu-header"><ul id="menu-footer-menu-en" class="menu nav d-flex">
86<li id="menu-item-656" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-privacy-policy menu-item-656"><a rel="privacy-policy" href="https://codelab.eu/en/privacy-policy/">Privacy Policy</a></li><li id="menu-item-655" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-655"><a href="https://codelab.eu/en/terms-of-use/">Terms of Use</a></li><li id="menu-item-657" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-657"><a href="https://codelab.eu/en/quality-policy/">Quality Policy</a></li><li id="menu-item-5013" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-5013"><a href="https://codelab.eu/en/quality-first/">Quality First</a></li><li id="menu-item-8658" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-8658"><a href="https://codelab.eu/en/code-of-conduct/">Code of Conduct</a></li><li id="menu-item-9588" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-9588"><a href="https://codelab.eu/en/whistblowers">Whistleblowers</a></li></ul></div></nav></div></div></div></footer><div id="slideOutNav"><div id="slideOutNavInner"><div class="d-flex align-items-center justify-content-between"><div class="logoImg"> 87<a href="/" rel="home"> 88<img src="https://codelab.eu/wp-content/uploads/2020/07/logo-header.svg" alt="logo-header"> 89</a></div> 90<button class="closeBtn closeBtnNav" aria-label="Close"><span></span></button></div><nav id="menuSlideOut" class="slideOutMenu d-flex align-items-center justify-content-start" role="navigation"><div class="menu-header"><ul id="menu-top-menu-en-1" class="menu nav"><li class="menu-item menu-item-type-post_type menu-item-object-page current-page-ancestor current-menu-ancestor current-menu-parent current-custom-parent current_page_parent current_page_ancestor menu-item-has-children menu-item-712"><a href="https://codelab.eu/en/services/">Services</a><ul class="sub-menu"><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-43380"><a href="https://lp.codelab.eu/cra">Cyber Resilience Act (CRA)</a></li><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-43182"><a href="https://lp.codelab.eu/test-automation-lab">Test Automation Lab</a></li><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-43445"><a href="https://codelab.eu/lsr">Legacy Software Redesign</a></li><li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1055"><a href="https://codelab.eu/en/services/software-development/">Software Development</a></li><li class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-513 current_page_item menu-item-713"><a href="https://codelab.eu/en/services/product-development-engineering/" aria-current="page">Product Development Engineering</a></li><li class="menu-item menu-item-type-post_type menu-item-object-landing menu-item-40626"><a href="https://codelab.eu/en/landing/sonar/">Sonar Clean Code</a></li><li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-9267"><a href="https://codelab.eu/en/speed-up-software-releases/">CI/CD Services</a></li><li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-715"><a href="https://codelab.eu/en/services/test-engineering/">Test Engineering</a></li><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-43181"><a href="https://lp.codelab.eu/en/apphealthcheck-audit-legacy-modernization-fast-track">AppHealth Check</a></li><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-43520"><a href="https://lp.codelab.eu/securestack-audit-for-legacy-systems">Secure Stack Audit</a></li><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-43446"><a href="https://codelab.eu/uxui">UX/UI Refresh for Legacy Systems</a></li></ul></li><li class="multiCol menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-716"><a href="https://codelab.eu/en/expertise/">Expertise</a><ul class="sub-menu"><li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-5269"><a href="https://codelab.eu/en/expertise/automotive-expertise/">Automotive Expertise</a></li><li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-5270"><a href="https://codelab.eu/en/expertise/industrial-internet-of-things-2/">Industrial Internet of Things</a></li><li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1047"><a href="https://codelab.eu/en/expertise/mobile-software-development/">Mobile Software Development</a></li><li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1016"><a href="https://codelab.eu/en/expertise/embedded-product-engineering/">Embedded Product Engineering</a></li><li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-718"><a href="https://codelab.eu/en/expertise/embedded-low-level-software/">
90Embedded Low Level Software</a></li><li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1130"><a href="https://codelab.eu/en/expertise/human-machine-interface/">Human Machine Interface</a></li><li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1126"><a href="https://codelab.eu/en/expertise/machine-learning/">Machine Learning & AI</a></li><li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-720"><a href="https://codelab.eu/en/expertise/enterprise-software-development/">Enterprise Software Development</a></li><li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1192"><a href="https://codelab.eu/en/expertise/quality-assurance/">Quality Assurance</a></li></ul></li><li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-42935"><a href="https://codelab.eu/en/case-studies/">Case studies</a></li><li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-2451"><a href="https://codelab.eu/en/blog/">Blog</a></li><li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-726"><a href="https://codelab.eu/en/career/">Career</a></li><li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-727"><a href="https://codelab.eu/en/contact/">Contact</a></li><li class="pll-parent-menu-item menu-item menu-item-type-custom menu-item-object-custom current-menu-parent menu-item-has-children menu-item-1193"><a href="#pll_switcher"><img src="/wp-content/themes/customTpl/polylang/en_GB.svg" alt><span style="margin-left:0.3em;">EN</span></a><ul class="sub-menu"><li class="lang-item lang-item-2 lang-item-pl lang-item-first menu-item menu-item-type-custom menu-item-object-custom menu-item-1193-pl"><a href="https://codelab.eu/pl/uslugi/inzynieria-rozwoju-produktu/" hreflang="pl-PL" lang="pl-PL"><img src="/wp-content/themes/customTpl/polylang/pl_PL.svg" alt><span style="margin-left:0.3em;">PL</span></a></li><li class="lang-item lang-item-17 lang-item-en current-lang menu-item menu-item-type-custom menu-item-object-custom menu-item-1193-en"><a href="https://codelab.eu/en/services/product-development-engineering/" hreflang="en-GB" lang="en-GB"><img src="/wp-content/themes/customTpl/polylang/en_GB.svg" alt><span style="margin-left:0.3em;">EN</span></a></li><li class="lang-item lang-item-21 lang-item-de menu-item menu-item-type-custom menu-item-object-custom menu-item-1193-de"><a href="https://codelab.eu/de/produktentwicklung/" hreflang="de-DE" lang="de-DE"><img src="/wp-content/themes/customTpl/polylang/de_DE.svg" alt><span style="margin-left:0.3em;">DE</span></a></li></ul></li></ul></div></nav><h5>Find us at</h5><ul class="socialIcons list-style-no"><li> 91<a target="_blank" rel="nofollow" href="https://www.facebook.com/codelab.eu" class="social-link" data-social-network="Facebook"> 92<i class="fab fa-facebook-f" style="color: #2c74ed"></i> <span>Facebook</span> 93</a></li><li> 94<a target="_blank" rel="nofollow" href="https://www.instagram.com/codelabeu" class="social-link" data-social-network="Instagram"> 95<i class="fab fa-instagram" style="color: #c12d6a"></i> <span>Instagram</span> 96</a></li><li> 97<a target="_blank" rel="nofollow" href="https://www.linkedin.com/company/codelabeu/mycompany/" class="social-link" data-social-network="LinkedIn"> 98<i class="fab fa-linkedin-in" style="color: #1771ab"></i> <span>LinkedIn</span> 99</a></li></ul></div></div><button aria-label="Mobile menu" class="mobileBtn"><span>Mobile menu</span></button><div class="modal fade" id="modalSzczecin" tabindex="-1" role="dialog" aria-labelledby="exampleModalCenterTitle" aria-hidden="true"><div class="modal-dialog modal-dialog-centered modal-lg" role="document"><div class="modal-content"> 100<iframe data-lazyloaded="1" src="about:blank" data-src="https://codelab.eu/virtual-tour/szczecin/"></iframe></div></div></div><div class="modal fade" id="modalWroclaw" tabindex="-1" role="dialog" aria-labelledby="exampleModalCenterTitle" aria-hidden="true"><div class="modal-dialog modal-dialog-centered modal-lg" role="document"><div class="modal-content"> 101<iframe data-lazyloaded="1" src="about:blank" data-src="https://codelab.eu/virtual-tour/wroclaw/"></iframe></div></div></div>
101<script type="speculationrules">{"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/customTpl/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}</script>
101
101<script data-optimized="1" type="text/javascript" src="data:text/javascript;base64,alF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigkKXtqUXVlcnkoJy53cGNmNy1mb3JtLWNvbnRyb2wud3BjZjctc3VibWl0JykuY2xpY2soZnVuY3Rpb24oZSl7dmFyIHVwbG9hZEZpZWxkcz0kKHRoaXMpLnBhcmVudHMoJ2Zvcm0nKS5maW5kKCcud3BjZjctZHJhZy1uLWRyb3AtZmlsZScpO3ZhciB2YWxpZD0hMDtpZih1cGxvYWRGaWVsZHMubGVuZ3RoPjApe2pRdWVyeS5lYWNoKHVwbG9hZEZpZWxkcyxmdW5jdGlvbihpLGZpZWxkKXtpZigkKGZpZWxkKS5hdHRyKCdhcmlhLXJlcXVpcmVkJyk9PSd0cnVlJyl7cGFyZW50c1dyYXA9JChmaWVsZCkucGFyZW50cygnLmNvZGVkcm9wei11cGxvYWQtd3JhcHBlcicpO3BhcmVudHNXcmFwLnJlbW92ZUNsYXNzKCdpbnZhbGlkJyk7cGFyZW50c1dyYXAuZmluZCgnbGFiZWwnKS5yZW1vdmUoKTtpZigkKCdbdHlwZT0iaGlkZGVuIl1bbmFtZT0iJyskKGZpZWxkKS5hdHRyKCdkYXRhLW5hbWUnKSsnW10iXScpLmxlbmd0aD09MCl7cGFyZW50c1dyYXAuYXBwZW5kKCc8bGFiZWwgY2xhc3M9ImVycm9yLW5ldyI+JytkbmRfY2Y3X3VwbG9hZGVyLmRyYWdfbl9kcm9wX3VwbG9hZC5yZXF1aXJlZCsnPC9sYWJlbD4nKS5hZGRDbGFzcygnaW52YWxpZCcpO3ZhbGlkPSExfX19KTtpZighdmFsaWQpe3JldHVybiExfX0KcmV0dXJuITB9KX0p" defer></script>
101
101<script data-optimized="1" src="data:text/javascript;base64,ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsZnVuY3Rpb24oKXtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdhW2hyZWYqPSJtZWV0aW5ncy1ldTEuaHVic3BvdC5jb20vc2xhd29taXIta3VrdXJlbmRhIl0nKS5mb3JFYWNoKGZ1bmN0aW9uKGVsKXtlbC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsZnVuY3Rpb24oKXtpZih3aW5kb3cubGludHJrKXt3aW5kb3cubGludHJrKCd0cmFjaycse2NvbnZlcnNpb25faWQ6Mjk0OTYxMDV9KX19KX0pfSk=" defer></script>
101 102
102<script data-optimized="1" src="data:text/javascript;base64,KGZ1bmN0aW9uKGwsZSxhLGQsaSxuLGYsbyl7aWYoIWxbaV0pe2wuR2xvYmFsTGVhZGluZm9OYW1lc3BhY2U9bC5HbG9iYWxMZWFkaW5mb05hbWVzcGFjZXx8W107bC5HbG9iYWxMZWFkaW5mb05hbWVzcGFjZS5wdXNoKGkpO2xbaV09ZnVuY3Rpb24oKXsobFtpXS5xPWxbaV0ucXx8W10pLnB1c2goYXJndW1lbnRzKX07bFtpXS50PWxbaV0udHx8bjtsW2ldLnE9bFtpXS5xfHxbXTtvPWUuY3JlYXRlRWxlbWVudChhKTtmPWUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoYSlbMF07by5hc3luYz0xO28uc3JjPWQ7Zi5wYXJlbnROb2RlLmluc2VydEJlZm9yZShvLGYpfX0od2luZG93LGRvY3VtZW50LCJzY3JpcHQiLCJodHRwczovL2Nkbi5sZWFkaW5mby5uZXQvcGluZy5qcyIsImxlYWRpbmZvIiwiTEktNjUwNDY4REVENUE3MSIpKQ==" defer></script>
102
102<script data-optimized="1" type="text/javascript" src="data:text/javascript;base64,X2xpbmtlZGluX3BhcnRuZXJfaWQ9IjM2Nzg3MzciO3dpbmRvdy5fbGlua2VkaW5fZGF0YV9wYXJ0bmVyX2lkcz13aW5kb3cuX2xpbmtlZGluX2RhdGFfcGFydG5lcl9pZHN8fFtdO3dpbmRvdy5fbGlua2VkaW5fZGF0YV9wYXJ0bmVyX2lkcy5wdXNoKF9saW5rZWRpbl9wYXJ0bmVyX2lkKQ==" defer></script>
102<script data-optimized="1" type="text/javascript" src="data:text/javascript;base64,KGZ1bmN0aW9uKGwpe2lmKCFsKXt3aW5kb3cubGludHJrPWZ1bmN0aW9uKGEsYil7d2luZG93LmxpbnRyay5xLnB1c2goW2EsYl0pfTt3aW5kb3cubGludHJrLnE9W119CnZhciBzPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQiKVswXTt2YXIgYj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtiLnR5cGU9InRleHQvamF2YXNjcmlwdCI7Yi5hc3luYz0hMDtiLnNyYz0iaHR0cHM6Ly9zbmFwLmxpY2RuLmNvbS9saS5sbXMtYW5hbHl0aWNzL2luc2lnaHQubWluLmpzIjtzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGIscyl9KSh3aW5kb3cubGludHJrKQ==" defer></script>
102 <noscript> 103<img height="1" width="1" style="display:none" alt="" src="https://px.ads.linkedin.com/collect/?pid=3678737&fmt=gif" /> 104</noscript>
105<script data-optimized="1" type="text/javascript" src="data:text/javascript;base64,KGZ1bmN0aW9uKCl7dmFyIGV4cGlyYXRpb25EYXRlPW5ldyBEYXRlKCk7ZXhwaXJhdGlvbkRhdGUuc2V0VGltZShleHBpcmF0aW9uRGF0ZS5nZXRUaW1lKCkrMzE1MzYwMDAqMTAwMCk7ZG9jdW1lbnQuY29va2llPSJwbGxfbGFuZ3VhZ2U9ZW47IGV4cGlyZXM9IitleHBpcmF0aW9uRGF0ZS50b1VUQ1N0cmluZygpKyI7IHBhdGg9Lzsgc2VjdXJlOyBTYW1lU2l0ZT1MYXgifSgpKQ==" defer></script>
105
105<script data-optimized="1" id="wp-hooks-js" src="https://codelab.eu/wp-content/litespeed/js/3273f51f5b3c6f7f8e9ea893c3a50c22.js?ver=50c22" defer data-deferred="1"></script>
105
105<script data-optimized="1" id="wp-i18n-js" src="https://codelab.eu/wp-content/litespeed/js/66d93cf0f5cfcab580cad13bbcdd7803.js?ver=d7803" defer data-deferred="1"></script>
105
105<script data-optimized="1" id="wp-i18n-js-after" src="data:text/javascript;base64,d3AuaTE4bi5zZXRMb2NhbGVEYXRhKHsndGV4dCBkaXJlY3Rpb25cdTAwMDRsdHInOlsnbHRyJ119KQ==" defer></script>
105
105<script data-optimized="1" id="swv-js" src="https://codelab.eu/wp-content/litespeed/js/683d9500ea7afc00ea12ed14d6a00cd5.js?ver=00cd5" defer data-deferred="1"></script>
105
105<script data-optimized="1" id="contact-form-7-js-translations" src="data:text/javascript;base64,KGZ1bmN0aW9uKGRvbWFpbix0cmFuc2xhdGlvbnMpe3ZhciBsb2NhbGVEYXRhPXRyYW5zbGF0aW9ucy5sb2NhbGVfZGF0YVtkb21haW5dfHx0cmFuc2xhdGlvbnMubG9jYWxlX2RhdGEubWVzc2FnZXM7bG9jYWxlRGF0YVsiIl0uZG9tYWluPWRvbWFpbjt3cC5pMThuLnNldExvY2FsZURhdGEobG9jYWxlRGF0YSxkb21haW4pfSkoImNvbnRhY3QtZm9ybS03Iix7InRyYW5zbGF0aW9uLXJldmlzaW9uLWRhdGUiOiIyMDI2LTA1LTA1IDE4OjMyOjM4KzAwMDAiLCJnZW5lcmF0b3IiOiJHbG90UHJlc3NcLzQuMC4zIiwiZG9tYWluIjoibWVzc2FnZXMiLCJsb2NhbGVfZGF0YSI6eyJtZXNzYWdlcyI6eyIiOnsiZG9tYWluIjoibWVzc2FnZXMiLCJwbHVyYWwtZm9ybXMiOiJucGx1cmFscz0yOyBwbHVyYWw9biAhPSAxOyIsImxhbmciOiJlbl9HQiJ9LCJUaGlzIGNvbnRhY3QgZm9ybSBpcyBwbGFjZWQgaW4gdGhlIHdyb25nIHBsYWNlLiI6WyJUaGlzIGNvbnRhY3QgZm9ybSBpcyBwbGFjZWQgaW4gdGhlIHdyb25nIHBsYWNlLiJdLCJFcnJvcjoiOlsiRXJyb3I6Il19fSwiY29tbWVudCI6eyJyZWZlcmVuY2UiOiJpbmNsdWRlc1wvanNcL2luZGV4LmpzIn19KQ==" defer></script>
105
105<script data-optimized="1" id="contact-form-7-js-before" src="data:text/javascript;base64,dmFyIHdwY2Y3PXsiYXBpIjp7InJvb3QiOiJodHRwczpcL1wvY29kZWxhYi5ldVwvd3AtanNvblwvIiwibmFtZXNwYWNlIjoiY29udGFjdC1mb3JtLTdcL3YxIn0sImNhY2hlZCI6MX0=" defer></script>
105
105<script data-optimized="1" id="contact-form-7-js" src="https://codelab.eu/wp-content/litespeed/js/611930e8e1c31552c94673cc7cf806ba.js?ver=806ba" defer data-deferred="1"></script>
105
105<script data-optimized="1" id="codedropz-uploader-js-extra" src="data:text/javascript;base64,dmFyIGRuZF9jZjdfdXBsb2FkZXI9eyJhamF4X3VybCI6Imh0dHBzOi8vY29kZWxhYi5ldS93cC1hZG1pbi9hZG1pbi1hamF4LnBocCIsImFqYXhfbm9uY2UiOiJkYTNjMWRhYmY0IiwiZHJhZ19uX2Ryb3BfdXBsb2FkIjp7InRhZyI6ImgzIiwidGV4dCI6IkRyYWcgJmFtcDsgRHJvcCBGaWxlcyBIZXJlIiwib3Jfc2VwYXJhdG9yIjoib3IiLCJicm93c2UiOiJCcm93c2UgRmlsZXMiLCJzZXJ2ZXJfbWF4X2Vycm9yIjoiVGhlIHVwbG9hZGVkIGZpbGUgZXhjZWVkcyB0aGUgbWF4aW11bSB1cGxvYWQgc2l6ZSBvZiB5b3VyIHNlcnZlci4iLCJsYXJnZV9maWxlIjoiVXBsb2FkZWQgZmlsZSBpcyB0b28gbGFyZ2UiLCJpbmF2YWxpZF90eXBlIjoiVXBsb2FkZWQgZmlsZSBpcyBub3QgYWxsb3dlZCBmb3IgZmlsZSB0eXBlIiwibWF4X2ZpbGVfbGltaXQiOiJOb3RlIDogU29tZSBvZiB0aGUgZmlsZXMgYXJlIG5vdCB1cGxvYWRlZCAoIE9ubHkgJWNvdW50JSBmaWxlcyBhbGxvd2VkICkiLCJyZXF1aXJlZCI6IlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIiwiZGVsZXRlIjp7InRleHQiOiJkZWxldGluZyIsInRpdGxlIjoiUmVtb3ZlIn19LCJkbmRfdGV4dF9jb3VudGVyIjoib2YiLCJkaXNhYmxlX2J0biI6IiJ9" defer></script>
105
105<script data-optimized="1" id="codedropz-uploader-js" src="https://codelab.eu/wp-content/litespeed/js/042b40e6ff9e9bb2653a0d804b8b7df1.js?ver=b7df1" defer data-deferred="1"></script>
105
105<script data-optimized="1" id="wpascript-js" src="https://codelab.eu/wp-content/litespeed/js/ae769bfec5e864895642a7e12a03324d.js?ver=3324d" defer data-deferred="1"></script>
105
105<script data-optimized="1" id="wpascript-js-after" src="data:text/javascript;base64,d3BhX2ZpZWxkX2luZm89SlNPTi5wYXJzZShhdG9iKCJleUozY0dGZlptbGxiR1JmYm1GdFpTSTZJbU56ZFdkdmJEZzJPVGNpTENKM2NHRmZabWxsYkdSZmRtRnNkV1VpT2pReU16TXpPQ3dpZDNCaFgyRmtaRjkwWlhOMElqb2libThpZlE9PSIpKQ==" defer></script>
105
105<script data-optimized="1" id="leadin-script-loader-js-js-extra" src="data:text/javascript;base64,dmFyIGxlYWRpbl93b3JkcHJlc3M9eyJ1c2VyUm9sZSI6InZpc2l0b3IiLCJwYWdlVHlwZSI6InBhZ2UiLCJsZWFkaW5QbHVnaW5WZXJzaW9uIjoiMTEuMy43NSJ9" defer></script>
105
105<script data-optimized="1" async defer id='hs-script-loader' src="https://codelab.eu/wp-content/litespeed/js/567d12a528c296acad6d0f0341d221bc.js?ver=221bc"></script>
105
105<script data-optimized="1" id="dompurify-js" src="https://codelab.eu/wp-content/litespeed/js/05e5b5f6099799e62bfad8348c452c51.js?ver=52c51" defer data-deferred="1"></script>
105
105<script data-optimized="1" id="responsive-lightbox-sanitizer-js-before" src="data:text/javascript;base64,d2luZG93LlJMRz13aW5kb3cuUkxHfHx7fTt3aW5kb3cuUkxHLnNhbml0aXplQWxsb3dlZEhvc3RzPVsieW91dHViZS5jb20iLCJ3d3cueW91dHViZS5jb20iLCJ5b3V0dS5iZSIsInZpbWVvLmNvbSIsInBsYXllci52aW1lby5jb20iXQ==" defer></script>
105
105<script data-optimized="1" id="responsive-lightbox-sanitizer-js" src="https://codelab.eu/wp-content/litespeed/js/737f348a8739440bb9ac9994557e25a5.js?ver=e25a5" defer data-deferred="1"></script>
105
105<script data-optimized="1" id="responsive-lightbox-swipebox-js" src="https://codelab.eu/wp-content/litespeed/js/b34a7710c37c0ddc437ad330ed42e868.js?ver=2e868" defer data-deferred="1"></script>
105
105<script data-optimized="1" id="underscore-js" src="https://codelab.eu/wp-content/litespeed/js/b3a52b208c17e16a60549afb32e4d503.js?ver=4d503" defer data-deferred="1"></script>
105
105<script data-optimized="1" id="responsive-lightbox-infinite-scroll-js" src="https://codelab.eu/wp-content/litespeed/js/cd6bffbc362798cb2802afa9fc621f13.js?ver=21f13" defer data-deferred="1"></script>
105
105<script data-optimized="1" id="responsive-lightbox-js-before" src="data:text/javascript;base64,dmFyIHJsQXJncz17InNjcmlwdCI6InN3aXBlYm94Iiwic2VsZWN0b3IiOiJsaWdodGJveCIsImN1c3RvbUV2ZW50cyI6IiIsImFjdGl2ZUdhbGxlcmllcyI6ITAsImFuaW1hdGlvbiI6ITAsImhpZGVDbG9zZUJ1dHRvbk9uTW9iaWxlIjohMSwicmVtb3ZlQmFyc09uTW9iaWxlIjohMSwiaGlkZUJhcnMiOiEwLCJoaWRlQmFyc0RlbGF5Ijo1MDAwLCJ2aWRlb01heFdpZHRoIjoxMDgwLCJ1c2VTVkciOiEwLCJsb29wQXRFbmQiOiExLCJ3b29jb21tZXJjZV9nYWxsZXJ5IjohMSwiYWpheHVybCI6Imh0dHBzOlwvXC9jb2RlbGFiLmV1XC93cC1hZG1pblwvYWRtaW4tYWpheC5waHAiLCJub25jZSI6IjEzNWIyYTIwMmQiLCJwcmV2aWV3IjohMSwicG9zdElkIjo1MTMsInNjcmlwdEV4dGVuc2lvbiI6ITF9" defer></script>
105
105<script data-optimized="1" id="responsive-lightbox-js" src="https://codelab.eu/wp-content/litespeed/js/367996b3f438ca8b3a6302fe3d8b4c8a.js?ver=b4c8a" defer data-deferred="1"></script>
105
105<script id="gtm4wp-form-move-tracker-js-before" src="data:text/javascript;base64,dmFyIGd0bTR3cF9mb3JtX21vdmVfY29uZmlnPXsiZmlsbGVkT25seSI6ITF9" defer></script>
105
105<script data-wp-strategy="defer" defer id="gtm4wp-form-move-tracker-js" src="https://codelab.eu/wp-content/plugins/duracelltomi-google-tag-manager/build/gtm4wp-form-move-tracker.js"></script>
105
105<script data-optimized="1" id="customTpl-swiper-js" src="https://codelab.eu/wp-content/litespeed/js/b05b4ca95e67fc52e0ee4cb116355651.js?ver=55651" defer data-deferred="1"></script>
105
105<script data-optimized="1" id="customTpl-popper-js" src="https://codelab.eu/wp-content/litespeed/js/89b12c5c4db2da10eccba05f65974456.js?ver=74456" defer data-deferred="1"></script>
105
105<script data-optimized="1" id="customTpl-bootstrap-js" src="https://codelab.eu/wp-content/litespeed/js/603430be6c1804f5fe528bab94fc4f44.js?ver=c4f44" defer data-deferred="1"></script>
105
105<script data-optimized="1" id="customTpl-smoothScroll-js" src="https://codelab.eu/wp-content/litespeed/js/c08177a670b94bbbd49b7fb293f56a04.js?ver=56a04" defer data-deferred="1"></script>
105
105<script data-optimized="1" id="customTpl-codeLiner-js" src="https://codelab.eu/wp-content/litespeed/js/0db4851d555d3644561e4e77ab68da6c.js?ver=8da6c" defer data-deferred="1"></script>
105
105<script data-optimized="1" id="customTpl-functions-js-extra" src="data:text/javascript;base64,dmFyIG15QWpheD17ImFqYXh1cmwiOiJodHRwczovL2NvZGVsYWIuZXUvd3AtYWRtaW4vYWRtaW4tYWpheC5waHAifQ==" defer></script>
105
105<script data-optimized="1" id="customTpl-functions-js" src="https://codelab.eu/wp-content/litespeed/js/9ffe218c9038c87b29f265c9b463e74a.js?ver=3e74a" defer data-deferred="1"></script>
105
105<script data-optimized="1" id="customTpl-cf7-valid-en-js" src="https://codelab.eu/wp-content/litespeed/js/3d641e32e29a69094bc8ae509f71afb2.js?ver=1afb2" defer data-deferred="1"></script>
105
105<script data-wp-strategy="defer" defer id="litespeed-cache-js" src="https://codelab.eu/wp-content/plugins/litespeed-cache/assets/js/instant_click.min.js"></script>
105
105<script data-optimized="1" id="wp-typography-cleanup-clipboard-js" src="https://codelab.eu/wp-content/litespeed/js/e8560ad414aebe19820fe7810e7449e8.js?ver=449e8" defer data-deferred="1"></script>
105
105<script data-optimized="1" id="jvcf7_jquery_validate-js" src="https://codelab.eu/wp-content/litespeed/js/18613101d5146a803dcef9e9111d9344.js?ver=d9344" defer data-deferred="1"></script>
105
105<script data-optimized="1" id="jvcf7_validation-js-extra" src="data:text/javascript;base64,dmFyIHNjcmlwdERhdGE9eyJqdmNmN19kZWZhdWx0X3NldHRpbmdzIjp7Imp2Y2Y3X3Nob3dfbGFiZWxfZXJyb3IiOiJlcnJvck1zZ3Nob3ciLCJqdmNmN19pbnZhbGlkX2ZpZWxkX2Rlc2lnbiI6InRoZW1lXzAifX0=" defer></script>
105
105<script data-optimized="1" id="jvcf7_validation-js" src="https://codelab.eu/wp-content/litespeed/js/375b09a528c42904ee49d6b12b08a6bd.js?ver=8a6bd" defer data-deferred="1"></script>
vendor: 86 bytes, line 105
105 <script id="google-recaptcha-js" src="https://www.google.com/recaptcha/api.js?render=
1056LctIawqAAAAAG-qK8sIuipBrlX8mcytpVC4Al6R
vendor: 49 bytes, line 105
105&ver=3.0" defer data-deferred="1"></script>
105<script data-optimized="1" id="wp-polyfill-js" src="https://codelab.eu/wp-content/litespeed/js/fd9bdbdc8e7762e8b6d69cc878215d08.js?ver=15d08" defer data-deferred="1"></script>
105
105<script data-optimized="1" id="wpcf7-recaptcha-js-before" src="data:text/javascript;base64,dmFyIHdwY2Y3X3JlY2FwdGNoYT17InNpdGVrZXkiOiI2TGN0SWF3cUFBQUFBRy1xSzhzSXVpcEJybFg4bWN5dHBWQzRBbDZSIiwiYWN0aW9ucyI6eyJob21lcGFnZSI6ImhvbWVwYWdlIiwiY29udGFjdGZvcm0iOiJjb250YWN0Zm9ybSJ9fQ==" defer></script>
105
105<script data-optimized="1" id="wpcf7-recaptcha-js" src="https://codelab.eu/wp-content/litespeed/js/86b3b93058f2757cf6ea9071ad3a82b9.js?ver=a82b9" defer data-deferred="1"></script>
105
105<script data-no-optimize="1">window.lazyLoadOptions=Object.assign({},{threshold:300},window.lazyLoadOptions||{});!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).LazyLoad=e()}(this,function(){"use strict";function e(){return(e=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n,a=arguments[e];for(n in a)Object.prototype.hasOwnProperty.call(a,n)&&(t[n]=a[n])}return t}).apply(this,arguments)}function o(t){return e({},at,t)}function l(t,e){return t.getAttribute(gt+e)}function c(t){return l(t,vt)}function s(t,e){return function(t,e,n){e=gt+e;null!==n?t.setAttribute(e,n):t.removeAttribute(e)}(t,vt,e)}function i(t){return s(t,null),0}function r(t){return null===c(t)}function u(t){return c(t)===_t}function d(t,e,n,a){t&&(void 0===a?void 0===n?t(e):t(e,n):t(e,n,a))}function f(t,e){et?t.classList.add(e):t.className+=(t.className?" ":"")+e}function _(t,e){et?t.classList.remove(e):t.className=t.className.replace(new RegExp("(^|\\s+)"+e+"(\\s+|$)")," ").replace(/^\s+/,"").replace(/\s+$/,"")}function g(t){return t.llTempImage}function v(t,e){!e||(e=e._observer)&&e.unobserve(t)}function b(t,e){t&&(t.loadingCount+=e)}function p(t,e){t&&(t.toLoadCount=e)}function n(t){for(var e,n=[],a=0;e=t.children[a];a+=1)"SOURCE"===e.tagName&&n.push(e);return n}function h(t,e){(t=t.parentNode)&&"PICTURE"===t.tagName&&n(t).forEach(e)}function a(t,e){n(t).forEach(e)}function m(t){return!!t[lt]}function E(t){return t[lt]}function I(t){return delete t[lt]}function y(e,t){var n;m(e)||(n={},t.forEach(function(t){n[t]=e.getAttribute(t)}),e[lt]=n)}function L(a,t){var o;m(a)&&(o=E(a),t.forEach(function(t){var e,n;e=a,(t=o[n=t])?e.setAttribute(n,t):e.removeAttribute(n)}))}function k(t,e,n){f(t,e.class_loading),s(t,st),n&&(b(n,1),d(e.callback_loading,t,n))}function A(t,e,n){n&&t.setAttribute(e,n)}function O(t,e){A(t,rt,l(t,e.data_sizes)),A(t,it,l(t,e.data_srcset)),A(t,ot,l(t,e.data_src))}function w(t,e,n){var a=l(t,e.data_bg_multi),o=l(t,e.data_bg_multi_hidpi);(a=nt&&o?o:a)&&(t.style.backgroundImage=a,n=n,f(t=t,(e=e).class_applied),s(t,dt),n&&(e.unobserve_completed&&v(t,e),d(e.callback_applied,t,n)))}function x(t,e){!e||0<e.loadingCount||0<e.toLoadCount||d(t.callback_finish,e)}function M(t,e,n){t.addEventListener(e,n),t.llEvLisnrs[e]=n}function N(t){return!!t.llEvLisnrs}function z(t){if(N(t)){var e,n,a=t.llEvLisnrs;for(e in a){var o=a[e];n=e,o=o,t.removeEventListener(n,o)}delete t.llEvLisnrs}}function C(t,e,n){var a;delete t.llTempImage,b(n,-1),(a=n)&&--a.toLoadCount,_(t,e.class_loading),e.unobserve_completed&&v(t,n)}function R(i,r,c){var l=g(i)||i;N(l)||function(t,e,n){N(t)||(t.llEvLisnrs={});var a="VIDEO"===t.tagName?"loadeddata":"load";M(t,a,e),M(t,"error",n)}(l,function(t){var e,n,a,o;n=r,a=c,o=u(e=i),C(e,n,a),f(e,n.class_loaded),s(e,ut),d(n.callback_loaded,e,a),o||x(n,a),z(l)},function(t){var e,n,a,o;n=r,a=c,o=u(e=i),C(e,n,a),f(e,n.class_error),s(e,ft),d(n.callback_error,e,a),o||x(n,a),z(l)})}function T(t,e,n){var a,o,i,r,c;t.llTempImage=document.createElement("IMG"),R(t,e,n),m(c=t)||(c[lt]={backgroundImage:c.style.backgroundImage}),i=n,r=l(a=t,(o=e).data_bg),c=l(a,o.data_bg_hidpi),(r=nt&&c?c:r)&&(a.style.backgroundImage='url("'.concat(r,'")'),g(a).setAttribute(ot,r),k(a,o,i)),w(t,e,n)}function G(t,e,n){var a;R(t,e,n),a=e,e=n,(t=Et[(n=t).tagName])&&(t(n,a),k(n,a,e))}function D(t,e,n){var a;a=t,(-1<It.indexOf(a.tagName)?G:T)(t,e,n)}function S(t,e,n){var a;t.setAttribute("loading","lazy"),R(t,e,n),a=e,(e=Et[(n=t).tagName])&&e(n,a),s(t,_t)}function V(t){t.removeAttribute(ot),t.removeAttribute(it),t.removeAttribute(rt)}function j(t){h(t,function(t){L(t,mt)}),L(t,mt)}function F(t){var e;(e=yt[t.tagName])?e(t):m(e=t)&&(t=E(e),e.style.backgroundImage=t.backgroundImage)}function P(t,e){var n;F(t),n=e,r(e=t)||u(e)||(_(e,n.class_entered),_(e,n.class_exited),_(e,n.class_applied),_(e,n.class_loading),_(e,n.class_loaded),_(e,n.class_error)),i(t),I(t)}function U(t,e,n,a){var o;n.cancel_on_exit&&(c(t)!==st||"IMG"===t.tagName&&(z(t),h(o=t,function(t){V(t)}
105),V(o),j(t),_(t,n.class_loading),b(a,-1),i(t),d(n.callback_cancel,t,e,a)))}function $(t,e,n,a){var o,i,r=(i=t,0<=bt.indexOf(c(i)));s(t,"entered"),f(t,n.class_entered),_(t,n.class_exited),o=t,i=a,n.unobserve_entered&&v(o,i),d(n.callback_enter,t,e,a),r||D(t,n,a)}function q(t){return t.use_native&&"loading"in HTMLImageElement.prototype}function H(t,o,i){t.forEach(function(t){return(a=t).isIntersecting||0<a.intersectionRatio?$(t.target,t,o,i):(e=t.target,n=t,a=o,t=i,void(r(e)||(f(e,a.class_exited),U(e,n,a,t),d(a.callback_exit,e,n,t))));var e,n,a})}function B(e,n){var t;tt&&!q(e)&&(n._observer=new IntersectionObserver(function(t){H(t,e,n)},{root:(t=e).container===document?null:t.container,rootMargin:t.thresholds||t.threshold+"px"}))}function J(t){return Array.prototype.slice.call(t)}function K(t){return t.container.querySelectorAll(t.elements_selector)}function Q(t){return c(t)===ft}function W(t,e){return e=t||K(e),J(e).filter(r)}function X(e,t){var n;(n=K(e),J(n).filter(Q)).forEach(function(t){_(t,e.class_error),i(t)}),t.update()}function t(t,e){var n,a,t=o(t);this._settings=t,this.loadingCount=0,B(t,this),n=t,a=this,Y&&window.addEventListener("online",function(){X(n,a)}),this.update(e)}var Y="undefined"!=typeof window,Z=Y&&!("onscroll"in window)||"undefined"!=typeof navigator&&/(gle|ing|ro)bot|crawl|spider/i.test(navigator.userAgent),tt=Y&&"IntersectionObserver"in window,et=Y&&"classList"in document.createElement("p"),nt=Y&&1<window.devicePixelRatio,at={elements_selector:".lazy",container:Z||Y?document:null,threshold:300,thresholds:null,data_src:"src",data_srcset:"srcset",data_sizes:"sizes",data_bg:"bg",data_bg_hidpi:"bg-hidpi",data_bg_multi:"bg-multi",data_bg_multi_hidpi:"bg-multi-hidpi",data_poster:"poster",class_applied:"applied",class_loading:"litespeed-loading",class_loaded:"litespeed-loaded",class_error:"error",class_entered:"entered",class_exited:"exited",unobserve_completed:!0,unobserve_entered:!1,cancel_on_exit:!0,callback_enter:null,callback_exit:null,callback_applied:null,callback_loading:null,callback_loaded:null,callback_error:null,callback_finish:null,callback_cancel:null,use_native:!1},ot="src",it="srcset",rt="sizes",ct="poster",lt="llOriginalAttrs",st="loading",ut="loaded",dt="applied",ft="error",_t="native",gt="data-",vt="ll-status",bt=[st,ut,dt,ft],pt=[ot],ht=[ot,ct],mt=[ot,it,rt],Et={IMG:function(t,e){h(t,function(t){y(t,mt),O(t,e)}),y(t,mt),O(t,e)},IFRAME:function(t,e){y(t,pt),A(t,ot,l(t,e.data_src))},VIDEO:function(t,e){a(t,function(t){y(t,pt),A(t,ot,l(t,e.data_src))}),y(t,ht),A(t,ct,l(t,e.data_poster)),A(t,ot,l(t,e.data_src)),t.load()}},It=["IMG","IFRAME","VIDEO"],yt={IMG:j,IFRAME:function(t){L(t,pt)},VIDEO:function(t){a(t,function(t){L(t,pt)}),L(t,ht),t.load()}},Lt=["IMG","IFRAME","VIDEO"];return t.prototype={update:function(t){var e,n,a,o=this._settings,i=W(t,o);{if(p(this,i.length),!Z&&tt)return q(o)?(e=o,n=this,i.forEach(function(t){-1!==Lt.indexOf(t.tagName)&&S(t,e,n)}),void p(n,0)):(t=this._observer,o=i,t.disconnect(),a=t,void o.forEach(function(t){a.observe(t)}));this.loadAll(i)}},destroy:function(){this._observer&&this._observer.disconnect(),K(this._settings).forEach(function(t){I(t)}),delete this._observer,delete this._settings,delete this.loadingCount,delete this.toLoadCount},loadAll:function(t){var e=this,n=this._settings;W(t,n).forEach(function(t){v(t,e),D(t,n,e)})},restoreAll:function(){var e=this._settings;K(e).forEach(function(t){P(t,e)})}},t.load=function(t,e){e=o(e);D(t,e)},t.resetStatus=function(t){i(t)},t}),function(t,e){"use strict";function n(){e.body.classList.add("litespeed_lazyloaded")}function a(){console.log("[LiteSpeed] Start Lazy Load"),o=new LazyLoad(Object.assign({},t.lazyLoadOptions||{},{elements_selector:"[data-lazyloaded]",callback_finish:n})),i=function(){o.update()},t.MutationObserver&&new MutationObserver(i).observe(e.documentElement,{childList:!0,subtree:!0,attributes:!0})}var o,i;t.addEventListener?t.addEventListener("load",a,!1):t.attachEvent("onload",a)}(window,document);</script>
105</body></html> 106<!-- Page optimized by LiteSpeed Cache @2026-10-03 14:32:14 --> 107 108<!-- Page cached by LiteSpeed Cache 7.9.1 on 2026-10-03 14:32:14 --> 109<!-- QUIC.cloud CCSS loaded â /ccss/65f3dbc74d876d2fbab94b6d18e70846.css -->
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.