{"id":1156,"date":"2025-11-23T06:26:07","date_gmt":"2025-11-23T06:26:07","guid":{"rendered":"https:\/\/honeydew-narwhal-449445.hostingersite.com\/?page_id=1156"},"modified":"2026-06-22T20:18:54","modified_gmt":"2026-06-22T23:18:54","slug":"portfolio","status":"publish","type":"page","link":"https:\/\/jackstark.io\/en\/portfolio\/","title":{"rendered":"Portfolio"},"content":{"rendered":"<style>.kb-row-layout-id1228_0ed37d-ef > .kt-row-column-wrap{align-content:start;}:where(.kb-row-layout-id1228_0ed37d-ef > .kt-row-column-wrap) > .wp-block-kadence-column{justify-content:start;}.kb-row-layout-id1228_0ed37d-ef > .kt-row-column-wrap{column-gap:var(--global-kb-gap-none, 0rem );row-gap:var(--global-kb-gap-md, 2rem);max-width:var( --global-content-width, 1290px );padding-left:var(--global-content-edge-padding);padding-right:var(--global-content-edge-padding);padding-top:var(--global-kb-spacing-sm, 1.5rem);padding-bottom:0px;}.kb-row-layout-id1228_0ed37d-ef > .kt-row-column-wrap > div:not(.added-for-specificity){grid-column:initial;}.kb-row-layout-id1228_0ed37d-ef > .kt-row-column-wrap{grid-template-columns:minmax(0, 1fr);}.kb-row-layout-id1228_0ed37d-ef > .kt-row-layout-overlay{opacity:0.30;}@media all and (max-width: 1024px){.kb-row-layout-id1228_0ed37d-ef > .kt-row-column-wrap > div:not(.added-for-specificity){grid-column:initial;}}@media all and (max-width: 1024px){.kb-row-layout-id1228_0ed37d-ef > .kt-row-column-wrap{grid-template-columns:minmax(0, 1fr);}}@media all and (max-width: 767px){.kb-row-layout-id1228_0ed37d-ef > .kt-row-column-wrap{column-gap:var(--global-kb-gap-sm, 1rem);row-gap:var(--global-kb-gap-sm, 1rem);grid-template-columns:minmax(0, 1fr);}.kb-row-layout-id1228_0ed37d-ef > .kt-row-column-wrap > div:not(.added-for-specificity){grid-column:initial;}.kb-row-layout-wrap.wp-block-kadence-rowlayout.kb-row-layout-id1228_0ed37d-ef{background-color:rgba(0,0,0,0);background-image:url('https:\/\/jackstark.io\/wp-content\/uploads\/2025\/11\/bg-remover-1756078105115-768x768.png');background-size:100% auto;background-position:50% 50%;background-attachment:scroll;background-repeat:no-repeat;}.kb-row-layout-id1228_0ed37d-ef .kb-blocks-bg-video-container,.kb-row-layout-id1228_0ed37d-ef .kb-blocks-bg-slider{display:none;}}<\/style><div class=\"kb-row-layout-wrap kb-row-layout-id1228_0ed37d-ef alignnone kt-row-has-bg wp-block-kadence-rowlayout\"><div class=\"kt-blocks-carousel kb-blocks-bg-slider kt-carousel-container-dotstyle-dark\"><div class=\"kt-blocks-carousel-init splide kb-blocks-bg-slider-init kt-carousel-arrowstyle-none kt-carousel-dotstyle-dark\" data-slider-anim-speed=\"400\" data-slider-type=\"slider\" data-slider-scroll=\"1\" data-slider-arrows=\"false\" data-slider-fade=\"true\" data-slider-dots=\"true\" data-slider-hover-pause=\"false\" data-slider-auto=\"true\" data-slider-speed=\"7000\" data-show-pause-button=\"false\"><div class=\"splide__track\"><ul class=\"splide__list\"><li class=\"splide__slide kb-bg-slide-contain\"><div  class=\"kb-bg-slide kb-bg-slide-0\" style=\"background-image:url(https:\/\/jackstark.io\/wp-content\/uploads\/2025\/11\/bg-remover-1756078105115.png); background-size:auto; background-position:center center; background-repeat:no-repeat;\"><\/div><\/li><\/ul><\/div><\/div><\/div><div class=\"kt-row-column-wrap kt-has-5-columns kt-row-layout-row kt-tab-layout-inherit kt-mobile-layout-row kt-row-valign-top kb-theme-content-width\">\n<style>.kadence-column1228_190427-79 > .kt-inside-inner-col,.kadence-column1228_190427-79 > .kt-inside-inner-col:before{border-top-left-radius:0px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:0px;}.kadence-column1228_190427-79 > .kt-inside-inner-col{column-gap:var(--global-kb-gap-sm, 1rem);}.kadence-column1228_190427-79 > .kt-inside-inner-col{flex-direction:column;}.kadence-column1228_190427-79 > .kt-inside-inner-col > .aligncenter{width:100%;}.kadence-column1228_190427-79 > .kt-inside-inner-col:before{opacity:0.3;}.kadence-column1228_190427-79{position:relative;}@media all and (max-width: 1024px){.kadence-column1228_190427-79 > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}@media all and (max-width: 767px){.kadence-column1228_190427-79 > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}<\/style>\n<div class=\"wp-block-kadence-column kadence-column1228_190427-79\"><div class=\"kt-inside-inner-col\"><\/div><\/div>\n\n\n<style>.kadence-column1228_5d671e-9a > .kt-inside-inner-col,.kadence-column1228_5d671e-9a > .kt-inside-inner-col:before{border-top-left-radius:0px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:0px;}.kadence-column1228_5d671e-9a > .kt-inside-inner-col{column-gap:var(--global-kb-gap-sm, 1rem);}.kadence-column1228_5d671e-9a > .kt-inside-inner-col{flex-direction:column;}.kadence-column1228_5d671e-9a > .kt-inside-inner-col > .aligncenter{width:100%;}.kadence-column1228_5d671e-9a > .kt-inside-inner-col:before{opacity:0.3;}.kadence-column1228_5d671e-9a{position:relative;}@media all and (max-width: 1024px){.kadence-column1228_5d671e-9a > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}@media all and (max-width: 767px){.kadence-column1228_5d671e-9a > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}<\/style>\n<div class=\"wp-block-kadence-column kadence-column1228_5d671e-9a\"><div class=\"kt-inside-inner-col\"><\/div><\/div>\n\n\n<style>.kadence-column1228_76b255-9e > .kt-inside-inner-col,.kadence-column1228_76b255-9e > .kt-inside-inner-col:before{border-top-left-radius:0px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:0px;}.kadence-column1228_76b255-9e > .kt-inside-inner-col{column-gap:var(--global-kb-gap-sm, 1rem);}.kadence-column1228_76b255-9e > .kt-inside-inner-col{flex-direction:column;}.kadence-column1228_76b255-9e > .kt-inside-inner-col > .aligncenter{width:100%;}.kadence-column1228_76b255-9e > .kt-inside-inner-col:before{opacity:0.3;}.kadence-column1228_76b255-9e{position:relative;}@media all and (max-width: 1024px){.kadence-column1228_76b255-9e > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}@media all and (max-width: 767px){.kadence-column1228_76b255-9e > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}<\/style>\n<div class=\"wp-block-kadence-column kadence-column1228_76b255-9e\"><div class=\"kt-inside-inner-col\"><\/div><\/div>\n\n\n<style>.kadence-column1228_9280ba-4a > .kt-inside-inner-col,.kadence-column1228_9280ba-4a > .kt-inside-inner-col:before{border-top-left-radius:0px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:0px;}.kadence-column1228_9280ba-4a > .kt-inside-inner-col{column-gap:var(--global-kb-gap-sm, 1rem);}.kadence-column1228_9280ba-4a > .kt-inside-inner-col{flex-direction:column;}.kadence-column1228_9280ba-4a > .kt-inside-inner-col > .aligncenter{width:100%;}.kadence-column1228_9280ba-4a > .kt-inside-inner-col:before{opacity:0.3;}.kadence-column1228_9280ba-4a{position:relative;}@media all and (max-width: 1024px){.kadence-column1228_9280ba-4a > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}@media all and (max-width: 767px){.kadence-column1228_9280ba-4a > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}<\/style>\n<div class=\"wp-block-kadence-column kadence-column1228_9280ba-4a\"><div class=\"kt-inside-inner-col\"><\/div><\/div>\n\n\n<style>.kadence-column1228_054e94-68 > .kt-inside-inner-col,.kadence-column1228_054e94-68 > .kt-inside-inner-col:before{border-top-left-radius:0px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:0px;}.kadence-column1228_054e94-68 > .kt-inside-inner-col{column-gap:var(--global-kb-gap-sm, 1rem);}.kadence-column1228_054e94-68 > .kt-inside-inner-col{flex-direction:column;}.kadence-column1228_054e94-68 > .kt-inside-inner-col > .aligncenter{width:100%;}.kadence-column1228_054e94-68 > .kt-inside-inner-col:before{opacity:0.3;}.kadence-column1228_054e94-68{position:relative;}@media all and (max-width: 1024px){.kadence-column1228_054e94-68 > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}@media all and (max-width: 767px){.kadence-column1228_054e94-68 > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}<\/style>\n<div class=\"wp-block-kadence-column kadence-column1228_054e94-68\"><div class=\"kt-inside-inner-col\">\n<p class=\"has-text-align-center has-small-font-size wp-block-paragraph\"><em><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-theme-palette-9-color\"><em><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-theme-palette-9-color\"><strong>Electronics &amp; IT \u00b7 Real Technical Solutions<\/strong><\/mark><\/em><\/mark><\/em><\/p>\n<\/div><\/div>\n\n<\/div><\/div>\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"has-text-align-center has-theme-palette-9-color has-text-color has-link-color wp-elements-f15e048f84993dde5a446cbd68bfa0e7 wp-block-paragraph\">Real client work and personal projects focused on system integration, business logic, and solving technical challenges.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n<style>.kb-row-layout-id1156_abbf4f-de > .kt-row-column-wrap{align-content:start;}:where(.kb-row-layout-id1156_abbf4f-de > .kt-row-column-wrap) > .wp-block-kadence-column{justify-content:start;}.kb-row-layout-id1156_abbf4f-de > .kt-row-column-wrap{column-gap:var(--global-kb-gap-md, 2rem);row-gap:var(--global-kb-gap-md, 2rem);padding-top:var(--global-kb-spacing-sm, 1.5rem);padding-bottom:var(--global-kb-spacing-sm, 1.5rem);}.kb-row-layout-id1156_abbf4f-de > .kt-row-column-wrap > div:not(.added-for-specificity){grid-column:initial;}.kb-row-layout-id1156_abbf4f-de > .kt-row-column-wrap{grid-template-columns:minmax(0, 1fr) minmax(0, 2fr) minmax(0, 1fr);}.kb-row-layout-id1156_abbf4f-de > .kt-row-layout-overlay{opacity:0.30;}@media all and (max-width: 1024px){.kb-row-layout-id1156_abbf4f-de > .kt-row-column-wrap > div:not(.added-for-specificity){grid-column:initial;}}@media all and (max-width: 1024px){.kb-row-layout-id1156_abbf4f-de > .kt-row-column-wrap{grid-template-columns:minmax(0, 1fr) minmax(0, 2fr) minmax(0, 1fr);}}@media all and (max-width: 767px){.kb-row-layout-id1156_abbf4f-de > .kt-row-column-wrap > div:not(.added-for-specificity){grid-column:initial;}.kb-row-layout-id1156_abbf4f-de > .kt-row-column-wrap{grid-template-columns:minmax(0, 1fr);}}<\/style><div class=\"kb-row-layout-wrap kb-row-layout-id1156_abbf4f-de alignnone wp-block-kadence-rowlayout\"><div class=\"kt-row-column-wrap kt-has-3-columns kt-row-layout-center-half kt-tab-layout-inherit kt-mobile-layout-row kt-row-valign-top\">\n<style>.kadence-column1156_99b565-0b > .kt-inside-inner-col,.kadence-column1156_99b565-0b > .kt-inside-inner-col:before{border-top-left-radius:0px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:0px;}.kadence-column1156_99b565-0b > .kt-inside-inner-col{column-gap:var(--global-kb-gap-sm, 1rem);}.kadence-column1156_99b565-0b > .kt-inside-inner-col{flex-direction:column;}.kadence-column1156_99b565-0b > .kt-inside-inner-col > .aligncenter{width:100%;}.kadence-column1156_99b565-0b > .kt-inside-inner-col:before{opacity:0.3;}.kadence-column1156_99b565-0b{position:relative;}@media all and (max-width: 1024px){.kadence-column1156_99b565-0b > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}@media all and (max-width: 767px){.kadence-column1156_99b565-0b > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}<\/style>\n<div class=\"wp-block-kadence-column kadence-column1156_99b565-0b\"><div class=\"kt-inside-inner-col\"><\/div><\/div>\n\n\n<style>.kadence-column1156_585c1c-78 > .kt-inside-inner-col,.kadence-column1156_585c1c-78 > .kt-inside-inner-col:before{border-top-left-radius:0px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:0px;}.kadence-column1156_585c1c-78 > .kt-inside-inner-col{column-gap:var(--global-kb-gap-sm, 1rem);}.kadence-column1156_585c1c-78 > .kt-inside-inner-col{flex-direction:column;}.kadence-column1156_585c1c-78 > .kt-inside-inner-col > .aligncenter{width:100%;}.kadence-column1156_585c1c-78 > .kt-inside-inner-col:before{opacity:0.3;}.kadence-column1156_585c1c-78{position:relative;}@media all and (max-width: 1024px){.kadence-column1156_585c1c-78 > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}@media all and (max-width: 767px){.kadence-column1156_585c1c-78 > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}<\/style>\n<div class=\"wp-block-kadence-column kadence-column1156_585c1c-78\"><div class=\"kt-inside-inner-col\">\n<blockquote class=\"wp-block-quote is-style-default is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"has-theme-palette-9-color has-text-color has-link-color wp-elements-97c393c07d8c2c29630e4c65f8061633 wp-block-paragraph\">\u2013 \u201cTony Stark built this in a cave! With a box of scraps!\u201d<\/p>\n<cite><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-theme-palette-9-color\"><em>&#8211; Obadiah Stane, Iron-Man<\/em><\/mark><\/cite><\/blockquote>\n<\/div><\/div>\n\n\n<style>.kadence-column1156_7288fc-90 > .kt-inside-inner-col,.kadence-column1156_7288fc-90 > .kt-inside-inner-col:before{border-top-left-radius:0px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:0px;}.kadence-column1156_7288fc-90 > .kt-inside-inner-col{column-gap:var(--global-kb-gap-sm, 1rem);}.kadence-column1156_7288fc-90 > .kt-inside-inner-col{flex-direction:column;}.kadence-column1156_7288fc-90 > .kt-inside-inner-col > .aligncenter{width:100%;}.kadence-column1156_7288fc-90 > .kt-inside-inner-col:before{opacity:0.3;}.kadence-column1156_7288fc-90{position:relative;}@media all and (max-width: 1024px){.kadence-column1156_7288fc-90 > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}@media all and (max-width: 767px){.kadence-column1156_7288fc-90 > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}<\/style>\n<div class=\"wp-block-kadence-column kadence-column1156_7288fc-90\"><div class=\"kt-inside-inner-col\"><\/div><\/div>\n\n<\/div><\/div>\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n<style>.kb-row-layout-id1156_960f50-39 > .kt-row-column-wrap{align-content:start;}:where(.kb-row-layout-id1156_960f50-39 > .kt-row-column-wrap) > .wp-block-kadence-column{justify-content:start;}.kb-row-layout-id1156_960f50-39 > .kt-row-column-wrap{column-gap:var(--global-kb-gap-md, 2rem);row-gap:var(--global-kb-gap-md, 2rem);padding-top:var(--global-kb-spacing-sm, 1.5rem);padding-bottom:var(--global-kb-spacing-sm, 1.5rem);}.kb-row-layout-id1156_960f50-39 > .kt-row-column-wrap > div:not(.added-for-specificity){grid-column:initial;}.kb-row-layout-id1156_960f50-39 > .kt-row-column-wrap{grid-template-columns:minmax(0, 1fr) minmax(0, 2fr) minmax(0, 1fr);}.kb-row-layout-id1156_960f50-39 > .kt-row-layout-overlay{opacity:0.30;}@media all and (max-width: 1024px){.kb-row-layout-id1156_960f50-39 > .kt-row-column-wrap > div:not(.added-for-specificity){grid-column:initial;}}@media all and (max-width: 1024px){.kb-row-layout-id1156_960f50-39 > .kt-row-column-wrap{grid-template-columns:minmax(0, 1fr) minmax(0, 2fr) minmax(0, 1fr);}}@media all and (max-width: 767px){.kb-row-layout-id1156_960f50-39 > .kt-row-column-wrap > div:not(.added-for-specificity){grid-column:initial;}.kb-row-layout-id1156_960f50-39 > .kt-row-column-wrap{grid-template-columns:minmax(0, 1fr);}}<\/style><div class=\"kb-row-layout-wrap kb-row-layout-id1156_960f50-39 alignnone wp-block-kadence-rowlayout\"><div class=\"kt-row-column-wrap kt-has-3-columns kt-row-layout-center-half kt-tab-layout-inherit kt-mobile-layout-row kt-row-valign-top\">\n<style>.kadence-column1156_e6a64d-ae > .kt-inside-inner-col,.kadence-column1156_e6a64d-ae > .kt-inside-inner-col:before{border-top-left-radius:0px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:0px;}.kadence-column1156_e6a64d-ae > .kt-inside-inner-col{column-gap:var(--global-kb-gap-sm, 1rem);}.kadence-column1156_e6a64d-ae > .kt-inside-inner-col{flex-direction:column;}.kadence-column1156_e6a64d-ae > .kt-inside-inner-col > .aligncenter{width:100%;}.kadence-column1156_e6a64d-ae > .kt-inside-inner-col:before{opacity:0.3;}.kadence-column1156_e6a64d-ae{position:relative;}@media all and (max-width: 1024px){.kadence-column1156_e6a64d-ae > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}@media all and (max-width: 767px){.kadence-column1156_e6a64d-ae > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}<\/style>\n<div class=\"wp-block-kadence-column kadence-column1156_e6a64d-ae\"><div class=\"kt-inside-inner-col\"><\/div><\/div>\n\n\n<style>.kadence-column1156_57f20c-ca > .kt-inside-inner-col,.kadence-column1156_57f20c-ca > .kt-inside-inner-col:before{border-top-left-radius:0px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:0px;}.kadence-column1156_57f20c-ca > .kt-inside-inner-col{column-gap:var(--global-kb-gap-sm, 1rem);}.kadence-column1156_57f20c-ca > .kt-inside-inner-col{flex-direction:column;}.kadence-column1156_57f20c-ca > .kt-inside-inner-col > .aligncenter{width:100%;}.kadence-column1156_57f20c-ca > .kt-inside-inner-col:before{opacity:0.3;}.kadence-column1156_57f20c-ca{position:relative;}@media all and (max-width: 1024px){.kadence-column1156_57f20c-ca > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}@media all and (max-width: 767px){.kadence-column1156_57f20c-ca > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}<\/style>\n<div class=\"wp-block-kadence-column kadence-column1156_57f20c-ca\"><div class=\"kt-inside-inner-col\">\n<h2 class=\"wp-block-heading has-theme-palette-9-color has-text-color has-link-color wp-elements-f6f1d447444493ecc063d804b2289f4c\">Client Projects<\/h2>\n\n\n\n<p class=\"has-theme-palette-9-color has-text-color has-link-color wp-elements-4a9ff57808954bd9540aa677081303cc wp-block-paragraph\">Integrations developed for inventory automation, platform synchronization, and operational data processing.<\/p>\n<\/div><\/div>\n\n\n<style>.kadence-column1156_985daf-02 > .kt-inside-inner-col,.kadence-column1156_985daf-02 > .kt-inside-inner-col:before{border-top-left-radius:0px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:0px;}.kadence-column1156_985daf-02 > .kt-inside-inner-col{column-gap:var(--global-kb-gap-sm, 1rem);}.kadence-column1156_985daf-02 > .kt-inside-inner-col{flex-direction:column;}.kadence-column1156_985daf-02 > .kt-inside-inner-col > .aligncenter{width:100%;}.kadence-column1156_985daf-02 > .kt-inside-inner-col:before{opacity:0.3;}.kadence-column1156_985daf-02{position:relative;}@media all and (max-width: 1024px){.kadence-column1156_985daf-02 > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}@media all and (max-width: 767px){.kadence-column1156_985daf-02 > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}<\/style>\n<div class=\"wp-block-kadence-column kadence-column1156_985daf-02\"><div class=\"kt-inside-inner-col\"><\/div><\/div>\n\n<\/div><\/div>\n\n<style>.kt-tabs-id1156_7eb092-de > .kt-tabs-content-wrap > .wp-block-kadence-tab{border-top:4px solid #ff1900;border-right:4px solid #ff1900;border-bottom:4px solid #ff1900;border-left:4px solid #ff1900;border-top-left-radius:0px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:0px;padding-top:var(--global-kb-spacing-sm, 1.5rem);padding-right:var(--global-kb-spacing-sm, 1.5rem);padding-bottom:var(--global-kb-spacing-sm, 1.5rem);padding-left:var(--global-kb-spacing-sm, 1.5rem);min-height:385px;background:rgba(113,128,150,0.46);}.wp-block-kadence-tabs .kt-tabs-id1156_7eb092-de > .kt-tabs-title-list li{margin-top:0px;margin-right:-4px;margin-bottom:10px;margin-left:0px;}.wp-block-kadence-tabs .kt-tabs-id1156_7eb092-de > .kt-tabs-title-list li .kt-tab-title, .wp-block-kadence-tabs .kt-tabs-id1156_7eb092-de > .kt-tabs-content-wrap > .kt-tabs-accordion-title .kt-tab-title{line-height:1.4em;font-weight:inherit;font-style:normal;border-top-width:4px;border-right-width:0px;border-bottom-width:4px;border-left-width:4px;border-top-left-radius:30px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:10px;padding-top:12px;padding-right:0px;padding-bottom:12px;padding-left:20px;border-color:#050505;color:#f50505;background:rgba(125,138,161,0.7);}.wp-block-kadence-tabs .kt-tabs-id1156_7eb092-de > .kt-tabs-content-wrap > .kt-tabs-accordion-title .kt-tab-title{margin-top:0px;margin-right:-4px;margin-bottom:10px;margin-left:0px;}.wp-block-kadence-tabs .kt-tabs-id1156_7eb092-de > .kt-tabs-title-list li .kt-tab-title:hover, .wp-block-kadence-tabs .kt-tabs-id1156_7eb092-de > .kt-tabs-content-wrap > .kt-tabs-accordion-title .kt-tab-title:hover{border-color:var(--global-palette8, #F7FAFC);color:#f50505;background:var(--global-palette8, #F7FAFC);}.wp-block-kadence-tabs .kt-tabs-id1156_7eb092-de > .kt-tabs-title-list li.kt-tab-title-active .kt-tab-title, .wp-block-kadence-tabs .kt-tabs-id1156_7eb092-de > .kt-tabs-content-wrap > .kt-tabs-accordion-title.kt-tab-title-active .kt-tab-title{border-color:#f50505;color:#f50505;background:rgba(125,138,161,0.46);}.wp-block-kadence-tabs .kt-tabs-id1156_7eb092-de{max-width:800px;}@media all and (min-width: 1025px){.wp-block-kadence-tabs .kt-tabs-id1156_7eb092-de{display:flex;}.wp-block-kadence-tabs .kt-tabs-id1156_7eb092-de > .kt-tabs-title-list{float:none;width:130px;}.wp-block-kadence-tabs .kt-tabs-id1156_7eb092-de > .kt-tabs-content-wrap{float:none;width:auto;-webkit-flex:1;flex:1;}}@media all and (max-width: 1024px){.kt-tabs-id1156_7eb092-de > .kt-tabs-content-wrap > .wp-block-kadence-tab{border-top:4px solid #ff1900;border-right:4px solid #ff1900;border-bottom:4px solid #ff1900;border-left:4px solid #ff1900;}}@media all and (min-width: 768px) and (max-width: 1024px){.wp-block-kadence-tabs .kt-tabs-id1156_7eb092-de{display:flex;}.wp-block-kadence-tabs .kt-tabs-id1156_7eb092-de > .kt-tabs-title-list{float:none;width:130px;}.wp-block-kadence-tabs .kt-tabs-id1156_7eb092-de > .kt-tabs-content-wrap{float:none;width:auto;-webkit-flex:1;flex:1;}}@media all and (max-width: 767px){.kt-tabs-id1156_7eb092-de > .kt-tabs-content-wrap > .wp-block-kadence-tab{border-top:4px solid #ff1900;border-right:4px solid #ff1900;border-bottom:4px solid #ff1900;border-left:4px solid #ff1900;padding-top:var(--global-kb-spacing-sm, 1.5rem);padding-right:var(--global-kb-spacing-sm, 1.5rem);padding-bottom:var(--global-kb-spacing-sm, 1.5rem);padding-left:var(--global-kb-spacing-sm, 1.5rem);min-height:520px;}.wp-block-kadence-tabs .kt-tabs-id1156_7eb092-de{display:flex;max-width:440px;}.wp-block-kadence-tabs .kt-tabs-id1156_7eb092-de > .kt-tabs-title-list{float:none;width:110px;}.wp-block-kadence-tabs .kt-tabs-id1156_7eb092-de > .kt-tabs-content-wrap{float:none;width:auto;-webkit-flex:1;flex:1;}.wp-block-kadence-tabs .kt-tabs-id1156_7eb092-de > .kt-tabs-title-list li .kt-tab-title, .wp-block-kadence-tabs .kt-tabs-id1156_7eb092-de > .kt-tabs-content-wrap > .kt-tabs-accordion-title .kt-tab-title{padding-top:23px;padding-bottom:23px;}}<\/style>\n<div class=\"wp-block-kadence-tabs alignnone\"><div class=\"kt-tabs-wrap kt-tabs-id1156_7eb092-de kt-tabs-has-6-tabs kt-active-tab-1 kt-tabs-layout-vtabs kt-tabs-tablet-layout-inherit kt-tabs-mobile-layout-vtabs kt-tab-alignment-left\"><ul class=\"kt-tabs-title-list\"><li id=\"tab-contexto\" class=\"kt-title-item kt-title-item-1 kt-tabs-svg-show-always kt-tabs-icon-side-right kt-tab-title-active\"><a href=\"#tab-contexto\" data-tab=\"1\" class=\"kt-tab-title kt-tab-title-1\"><span class=\"kt-title-text\">Context<\/span><\/a><\/li><li id=\"tab-desarrollo\" class=\"kt-title-item kt-title-item-2 kt-tabs-svg-show-always kt-tabs-icon-side-right kt-tab-title-inactive\"><a href=\"#tab-desarrollo\" data-tab=\"2\" class=\"kt-tab-title kt-tab-title-2\"><span class=\"kt-title-text\">Development<\/span><\/a><\/li><li id=\"tab-solucin\" class=\"kt-title-item kt-title-item-3 kt-tabs-svg-show-always kt-tabs-icon-side-right kt-tab-title-inactive\"><a href=\"#tab-solucin\" data-tab=\"3\" class=\"kt-tab-title kt-tab-title-3\"><span class=\"kt-title-text\">Solution<\/span><\/a><\/li><li id=\"tab-stack\" class=\"kt-title-item kt-title-item-4 kt-tabs-svg-show-always kt-tabs-icon-side-right kt-tab-title-inactive\"><a href=\"#tab-stack\" data-tab=\"4\" class=\"kt-tab-title kt-tab-title-4\"><span class=\"kt-title-text\">Stack<\/span><\/a><\/li><li id=\"tab-resultado\" class=\"kt-title-item kt-title-item-5 kt-tabs-svg-show-always kt-tabs-icon-side-right kt-tab-title-inactive\"><a href=\"#tab-resultado\" data-tab=\"5\" class=\"kt-tab-title kt-tab-title-5\"><span class=\"kt-title-text\">Result<\/span><\/a><\/li><li id=\"tab-notas\" class=\"kt-title-item kt-title-item-6 kt-tabs-svg-show-always kt-tabs-icon-side-right kt-tab-title-inactive\"><a href=\"#tab-notas\" data-tab=\"6\" class=\"kt-tab-title kt-tab-title-6\"><span class=\"kt-title-text\">Notes<\/span><\/a><\/li><\/ul><div class=\"kt-tabs-content-wrap\">\n<div class=\"wp-block-kadence-tab kt-tab-inner-content kt-inner-tab-1 kt-inner-tab1156_3d8cc1-7c\"><div class=\"kt-tab-inner-content-inner\">\n<p class=\"has-text-align-center has-theme-palette-9-color has-text-color has-link-color wp-elements-b03cdbd1e4a84cf91e82327605b35ea3 wp-block-paragraph\">This project originated from the need to consolidate multiple inventory feeds from different suppliers and automatically synchronize them with Shopify.\n\nInput files came in inconsistent formats (CSV, XLS, and XLSX), with varying headers and structural differences between suppliers, making it impossible to rely on a single, consistent import workflow.<\/p>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-tab kt-tab-inner-content kt-inner-tab-2 kt-inner-tab1156_63f8d0-76\"><div class=\"kt-tab-inner-content-inner\">\n<p class=\"has-theme-palette-9-color has-text-color has-link-color wp-elements-418ab9a9ec8b760ce07c35cc2b1df777 wp-block-paragraph\">The architecture was designed in a decoupled way to allow new parsers and file formats to be added without modifying the system\u2019s core.\n\nDedicated services were implemented for feed detection, parsing, stock merging, Shopify synchronization, and technical report generation.\n\nProtective mechanisms were also introduced, including negative stock validation, duplicate SKU detection, untracked inventory checks, and safe-mode execution before enabling real writes to Shopify.<\/p>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-tab kt-tab-inner-content kt-inner-tab-3 kt-inner-tab1156_4a0b07-60\"><div class=\"kt-tab-inner-content-inner\">\n<p class=\"has-theme-palette-9-color has-text-color has-link-color wp-elements-e86a69f778346639f501cd52834bb7dc wp-block-paragraph\">A modular inventory processing and synchronization pipeline was developed to automatically detect file formats, normalize headers, and consolidate multiple sources into a unified inventory.\n\nThe system was integrated with Shopify using GraphQL and included validations, dry runs, automatic inventory activation, and operational report generation to minimize synchronization errors.<\/p>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-tab kt-tab-inner-content kt-inner-tab-4 kt-inner-tab1156_e6fe91-76\"><div class=\"kt-tab-inner-content-inner\">\n<p class=\"has-theme-palette-9-color has-text-color has-link-color wp-elements-f4bd91c8bd91bf924bbd818734ade799 wp-block-paragraph\">C# \u00b7 .NET \u00b7 Shopify GraphQL API \u00b7 REST APIs \u00b7 CSVHelper \u00b7 ClosedXML \u00b7 ExcelDataReader \u00b7 Docker \u00b7 JSON \u00b7 Background Processing \u00b7 Report Generation<\/p>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-tab kt-tab-inner-content kt-inner-tab-5 kt-inner-tab1156_b2651b-b7\"><div class=\"kt-tab-inner-content-inner\">\n<p class=\"has-theme-palette-9-color has-text-color has-link-color wp-elements-6cbf7e0df383d43bcc4ba9c90089553d wp-block-paragraph\">The system automated inventory consolidation and synchronization from multiple suppliers into Shopify, significantly reducing manual work and improving traceability through automatic reporting of inconsistencies.\n\nThe architecture is prepared for future expansion, including support for new file formats, custom merge rules, and more advanced inventory automation workflows.<\/p>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-tab kt-tab-inner-content kt-inner-tab-6 kt-inner-tab1156_67c7e7-39\"><div class=\"kt-tab-inner-content-inner\">\n<p class=\"has-theme-palette-9-color has-text-color has-link-color wp-elements-b3568b29679b3a98e52769d8f5bb8a52 wp-block-paragraph\">Part of the internal configuration, credentials, operational identifiers, and environment-specific data has been omitted or modified to preserve confidentiality and security.<\/p>\n<\/div><\/div>\n<\/div><\/div><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n<style>.kt-tabs-id1156_0fa958-cd > .kt-tabs-content-wrap > .wp-block-kadence-tab{border-top:4px solid #ff1900;border-right:4px solid #ff1900;border-bottom:4px solid #ff1900;border-left:4px solid #ff1900;border-top-left-radius:0px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:0px;padding-top:var(--global-kb-spacing-sm, 1.5rem);padding-right:var(--global-kb-spacing-sm, 1.5rem);padding-bottom:var(--global-kb-spacing-sm, 1.5rem);padding-left:var(--global-kb-spacing-sm, 1.5rem);min-height:385px;background:rgba(113,128,150,0.46);}.wp-block-kadence-tabs .kt-tabs-id1156_0fa958-cd > .kt-tabs-title-list li{margin-top:0px;margin-right:-4px;margin-bottom:10px;margin-left:0px;}.wp-block-kadence-tabs .kt-tabs-id1156_0fa958-cd > .kt-tabs-title-list li .kt-tab-title, .wp-block-kadence-tabs .kt-tabs-id1156_0fa958-cd > .kt-tabs-content-wrap > .kt-tabs-accordion-title .kt-tab-title{line-height:1.4em;font-weight:inherit;font-style:normal;border-top-width:4px;border-right-width:0px;border-bottom-width:4px;border-left-width:4px;border-top-left-radius:30px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:10px;padding-top:12px;padding-right:0px;padding-bottom:12px;padding-left:20px;border-color:#f60404;color:#fdfdfd;background:rgba(113,128,150,0.87);}.wp-block-kadence-tabs .kt-tabs-id1156_0fa958-cd > .kt-tabs-content-wrap > .kt-tabs-accordion-title .kt-tab-title{margin-top:0px;margin-right:-4px;margin-bottom:10px;margin-left:0px;}.wp-block-kadence-tabs .kt-tabs-id1156_0fa958-cd > .kt-tabs-title-list li .kt-tab-title:hover, .wp-block-kadence-tabs .kt-tabs-id1156_0fa958-cd > .kt-tabs-content-wrap > .kt-tabs-accordion-title .kt-tab-title:hover{border-color:var(--global-palette8, #F7FAFC);color:var(--global-palette5, #444444);background:var(--global-palette8, #F7FAFC);}.wp-block-kadence-tabs .kt-tabs-id1156_0fa958-cd > .kt-tabs-title-list li.kt-tab-title-active .kt-tab-title, .wp-block-kadence-tabs .kt-tabs-id1156_0fa958-cd > .kt-tabs-content-wrap > .kt-tabs-accordion-title.kt-tab-title-active .kt-tab-title{border-color:var(--global-palette7, #eeeeee);color:var(--global-palette5, #444444);background:var(--global-palette9, #ffffff);}.wp-block-kadence-tabs .kt-tabs-id1156_0fa958-cd{max-width:800px;}@media all and (min-width: 1025px){.wp-block-kadence-tabs .kt-tabs-id1156_0fa958-cd{display:flex;}.wp-block-kadence-tabs .kt-tabs-id1156_0fa958-cd > .kt-tabs-title-list{float:none;width:130px;}.wp-block-kadence-tabs .kt-tabs-id1156_0fa958-cd > .kt-tabs-content-wrap{float:none;width:auto;-webkit-flex:1;flex:1;}}@media all and (max-width: 1024px){.kt-tabs-id1156_0fa958-cd > .kt-tabs-content-wrap > .wp-block-kadence-tab{border-top:4px solid #ff1900;border-right:4px solid #ff1900;border-bottom:4px solid #ff1900;border-left:4px solid #ff1900;}}@media all and (min-width: 768px) and (max-width: 1024px){.wp-block-kadence-tabs .kt-tabs-id1156_0fa958-cd{display:flex;}.wp-block-kadence-tabs .kt-tabs-id1156_0fa958-cd > .kt-tabs-title-list{float:none;width:130px;}.wp-block-kadence-tabs .kt-tabs-id1156_0fa958-cd > .kt-tabs-content-wrap{float:none;width:auto;-webkit-flex:1;flex:1;}}@media all and (max-width: 767px){.kt-tabs-id1156_0fa958-cd > .kt-tabs-content-wrap > .wp-block-kadence-tab{border-top:4px solid #ff1900;border-right:4px solid #ff1900;border-bottom:4px solid #ff1900;border-left:4px solid #ff1900;min-height:520px;}.wp-block-kadence-tabs .kt-tabs-id1156_0fa958-cd{display:flex;max-width:440px;}.wp-block-kadence-tabs .kt-tabs-id1156_0fa958-cd > .kt-tabs-title-list{float:none;width:110px;}.wp-block-kadence-tabs .kt-tabs-id1156_0fa958-cd > .kt-tabs-content-wrap{float:none;width:auto;-webkit-flex:1;flex:1;}.wp-block-kadence-tabs .kt-tabs-id1156_0fa958-cd > .kt-tabs-title-list li .kt-tab-title, .wp-block-kadence-tabs .kt-tabs-id1156_0fa958-cd > .kt-tabs-content-wrap > .kt-tabs-accordion-title .kt-tab-title{border-top-left-radius:9px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:9px;padding-top:23px;padding-right:8px;padding-bottom:23px;}}<\/style>\n<div class=\"wp-block-kadence-tabs alignnone\"><div class=\"kt-tabs-wrap kt-tabs-id1156_0fa958-cd kt-tabs-has-6-tabs kt-active-tab-1 kt-tabs-layout-vtabs kt-tabs-tablet-layout-inherit kt-tabs-mobile-layout-vtabs kt-tab-alignment-left\"><ul class=\"kt-tabs-title-list\"><li id=\"tab-contexto\" class=\"kt-title-item kt-title-item-1 kt-tabs-svg-show-always kt-tabs-icon-side-right kt-tab-title-active\"><a href=\"#tab-contexto\" data-tab=\"1\" class=\"kt-tab-title kt-tab-title-1\"><span class=\"kt-title-text\">Context<\/span><\/a><\/li><li id=\"tab-desarrollo\" class=\"kt-title-item kt-title-item-2 kt-tabs-svg-show-always kt-tabs-icon-side-right kt-tab-title-inactive\"><a href=\"#tab-desarrollo\" data-tab=\"2\" class=\"kt-tab-title kt-tab-title-2\"><span class=\"kt-title-text\">Development<\/span><\/a><\/li><li id=\"tab-solucin\" class=\"kt-title-item kt-title-item-3 kt-tabs-svg-show-always kt-tabs-icon-side-right kt-tab-title-inactive\"><a href=\"#tab-solucin\" data-tab=\"3\" class=\"kt-tab-title kt-tab-title-3\"><span class=\"kt-title-text\">Solution<\/span><\/a><\/li><li id=\"tab-stack\" class=\"kt-title-item kt-title-item-4 kt-tabs-svg-show-always kt-tabs-icon-side-right kt-tab-title-inactive\"><a href=\"#tab-stack\" data-tab=\"4\" class=\"kt-tab-title kt-tab-title-4\"><span class=\"kt-title-text\">Stack<\/span><\/a><\/li><li id=\"tab-resultado\" class=\"kt-title-item kt-title-item-5 kt-tabs-svg-show-always kt-tabs-icon-side-right kt-tab-title-inactive\"><a href=\"#tab-resultado\" data-tab=\"5\" class=\"kt-tab-title kt-tab-title-5\"><span class=\"kt-title-text\">Result<\/span><\/a><\/li><li id=\"tab-notas\" class=\"kt-title-item kt-title-item-6 kt-tabs-svg-show-always kt-tabs-icon-side-right kt-tab-title-inactive\"><a href=\"#tab-notas\" data-tab=\"6\" class=\"kt-tab-title kt-tab-title-6\"><span class=\"kt-title-text\">Notes<\/span><\/a><\/li><\/ul><div class=\"kt-tabs-content-wrap\">\n<div class=\"wp-block-kadence-tab kt-tab-inner-content kt-inner-tab-1 kt-inner-tab1156_30c8e6-7a\"><div class=\"kt-tab-inner-content-inner\">\n<p class=\"has-text-align-center has-theme-palette-9-color has-text-color has-link-color wp-elements-83c889d535ed2cce76fd77d7a3e4e523 wp-block-paragraph\">This project required automatic inventory synchronization between Shopify and SellerCenter, using Summa as the intermediary access layer to SellerCenter.\n\nThe integration needed to run every 30 minutes while maintaining stock consistency across platforms.\n\nDuring analysis, two major limitations emerged: SellerCenter lacked reliable timestamps, and both platforms used different product identifiers (SKU in Shopify and UPC in SellerCenter).<\/p>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-tab kt-tab-inner-content kt-inner-tab-2 kt-inner-tab1156_feb3b8-b1\"><div class=\"kt-tab-inner-content-inner\">\n<p class=\"has-text-align-center has-theme-palette-9-color has-text-color has-link-color wp-elements-a95da9dbd737c4034986a50059c39b2a wp-block-paragraph\">The implementation required multiple refactors as real-world platform limitations became clearer.\n\nSeparate services were built for Shopify, SellerCenter, and Summa, along with state persistence mechanisms, conflict management, safety guardrails, and automated reporting.\n\nInventory loading was also optimized through batch processing, automatic retries, and validation checks to prevent accidental large-scale overwrites.<\/p>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-tab kt-tab-inner-content kt-inner-tab-3 kt-inner-tab1156_5d537f-09\"><div class=\"kt-tab-inner-content-inner\">\n<p class=\"has-theme-palette-9-color has-text-color has-link-color wp-elements-d85aeea4219056be0da0fd85f0303d68 wp-block-paragraph\">The synchronization logic was redesigned around a Shopify Master Source model, treating Shopify as the primary source of truth for inventory.\n\nTo avoid inconsistencies caused by missing timestamps, a delta-based synchronization strategy was implemented, combined with SKU-to-UPC mapping, allowing both catalogs to remain aligned without overwriting valid data incorrectly.<\/p>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-tab kt-tab-inner-content kt-inner-tab-4 kt-inner-tab1156_34e15e-6b\"><div class=\"kt-tab-inner-content-inner\">\n<p class=\"has-theme-palette-9-color has-text-color has-link-color wp-elements-f7b2f01dcabac6ed18fbb0e4cd6f6036 wp-block-paragraph\">C# \u00b7 .NET \u00b7 Background Services \u00b7 Shopify API \u00b7 REST APIs \u00b7 JSON \u00b7 Serilog \u00b7 Polly \u00b7 Docker \u00b7 State Persistence \u00b7 Delta Synchronization<\/p>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-tab kt-tab-inner-content kt-inner-tab-5 kt-inner-tab1156_7c5589-a2\"><div class=\"kt-tab-inner-content-inner\">\n<p class=\"has-theme-palette-9-color has-text-color has-link-color wp-elements-3cad515588d4d115f5c43888a8a0ac85 wp-block-paragraph\">The integration became fully operational, automatically synchronizing inventory from Shopify to SellerCenter every 30 minutes.\n\nThe system significantly reduced stock inconsistencies between platforms while leaving the architecture ready for future expansion toward bidirectional synchronization based on order events and automatic inventory updates.<\/p>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-tab kt-tab-inner-content kt-inner-tab-6 kt-inner-tab1156_bb1a8e-02\"><div class=\"kt-tab-inner-content-inner\">\n<p class=\"has-theme-palette-9-color has-text-color has-link-color wp-elements-7b67d9e72fe8d3ff64197ba5a88cdbed wp-block-paragraph\">Due to confidentiality requirements and client agreements, part of the implementation, internal structure, and operational data has been omitted or simplified in this presentation.<\/p>\n<\/div><\/div>\n<\/div><\/div><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n<style>.kb-row-layout-id1156_98d658-8b > .kt-row-column-wrap{align-content:start;}:where(.kb-row-layout-id1156_98d658-8b > .kt-row-column-wrap) > .wp-block-kadence-column{justify-content:start;}.kb-row-layout-id1156_98d658-8b > .kt-row-column-wrap{column-gap:var(--global-kb-gap-md, 2rem);row-gap:var(--global-kb-gap-md, 2rem);padding-top:var(--global-kb-spacing-sm, 1.5rem);padding-bottom:var(--global-kb-spacing-sm, 1.5rem);}.kb-row-layout-id1156_98d658-8b > .kt-row-column-wrap > div:not(.added-for-specificity){grid-column:initial;}.kb-row-layout-id1156_98d658-8b > .kt-row-column-wrap{grid-template-columns:minmax(0, 1fr) minmax(0, 2fr) minmax(0, 1fr);}.kb-row-layout-id1156_98d658-8b > .kt-row-layout-overlay{opacity:0.30;}@media all and (max-width: 1024px){.kb-row-layout-id1156_98d658-8b > .kt-row-column-wrap > div:not(.added-for-specificity){grid-column:initial;}}@media all and (max-width: 1024px){.kb-row-layout-id1156_98d658-8b > .kt-row-column-wrap{grid-template-columns:minmax(0, 1fr) minmax(0, 2fr) minmax(0, 1fr);}}@media all and (max-width: 767px){.kb-row-layout-id1156_98d658-8b > .kt-row-column-wrap > div:not(.added-for-specificity){grid-column:initial;}.kb-row-layout-id1156_98d658-8b > .kt-row-column-wrap{grid-template-columns:minmax(0, 1fr);}}<\/style><div class=\"kb-row-layout-wrap kb-row-layout-id1156_98d658-8b alignnone wp-block-kadence-rowlayout\"><div class=\"kt-row-column-wrap kt-has-3-columns kt-row-layout-center-half kt-tab-layout-inherit kt-mobile-layout-row kt-row-valign-top\">\n<style>.kadence-column1156_de461a-4a > .kt-inside-inner-col,.kadence-column1156_de461a-4a > .kt-inside-inner-col:before{border-top-left-radius:0px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:0px;}.kadence-column1156_de461a-4a > .kt-inside-inner-col{column-gap:var(--global-kb-gap-sm, 1rem);}.kadence-column1156_de461a-4a > .kt-inside-inner-col{flex-direction:column;}.kadence-column1156_de461a-4a > .kt-inside-inner-col > .aligncenter{width:100%;}.kadence-column1156_de461a-4a > .kt-inside-inner-col:before{opacity:0.3;}.kadence-column1156_de461a-4a{position:relative;}@media all and (max-width: 1024px){.kadence-column1156_de461a-4a > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}@media all and (max-width: 767px){.kadence-column1156_de461a-4a > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}<\/style>\n<div class=\"wp-block-kadence-column kadence-column1156_de461a-4a\"><div class=\"kt-inside-inner-col\"><\/div><\/div>\n\n\n<style>.kadence-column1156_fd0b35-9f > .kt-inside-inner-col,.kadence-column1156_fd0b35-9f > .kt-inside-inner-col:before{border-top-left-radius:0px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:0px;}.kadence-column1156_fd0b35-9f > .kt-inside-inner-col{column-gap:var(--global-kb-gap-sm, 1rem);}.kadence-column1156_fd0b35-9f > .kt-inside-inner-col{flex-direction:column;}.kadence-column1156_fd0b35-9f > .kt-inside-inner-col > .aligncenter{width:100%;}.kadence-column1156_fd0b35-9f > .kt-inside-inner-col:before{opacity:0.3;}.kadence-column1156_fd0b35-9f{position:relative;}@media all and (max-width: 1024px){.kadence-column1156_fd0b35-9f > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}@media all and (max-width: 767px){.kadence-column1156_fd0b35-9f > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}<\/style>\n<div class=\"wp-block-kadence-column kadence-column1156_fd0b35-9f\"><div class=\"kt-inside-inner-col\">\n<h2 class=\"wp-block-heading has-theme-palette-9-color has-text-color has-link-color wp-elements-6f042e6de8a00ddeb5ccb85a0f26c0b6\">Modular Tools &amp; Utilities<\/h2>\n\n\n\n<p class=\"has-theme-palette-9-color has-text-color has-link-color wp-elements-6d97a8e6a998ed137edb5e59d0ae7f45 wp-block-paragraph\">Development of modular tools focused on validation, auditing, and multi-platform synchronization.<\/p>\n<\/div><\/div>\n\n\n<style>.kadence-column1156_e31c3d-d7 > .kt-inside-inner-col,.kadence-column1156_e31c3d-d7 > .kt-inside-inner-col:before{border-top-left-radius:0px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:0px;}.kadence-column1156_e31c3d-d7 > .kt-inside-inner-col{column-gap:var(--global-kb-gap-sm, 1rem);}.kadence-column1156_e31c3d-d7 > .kt-inside-inner-col{flex-direction:column;}.kadence-column1156_e31c3d-d7 > .kt-inside-inner-col > .aligncenter{width:100%;}.kadence-column1156_e31c3d-d7 > .kt-inside-inner-col:before{opacity:0.3;}.kadence-column1156_e31c3d-d7{position:relative;}@media all and (max-width: 1024px){.kadence-column1156_e31c3d-d7 > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}@media all and (max-width: 767px){.kadence-column1156_e31c3d-d7 > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}<\/style>\n<div class=\"wp-block-kadence-column kadence-column1156_e31c3d-d7\"><div class=\"kt-inside-inner-col\"><\/div><\/div>\n\n<\/div><\/div>\n\n<style>.kt-tabs-id1156_46dabe-41 > .kt-tabs-content-wrap > .wp-block-kadence-tab{border-top:4px solid #ff1900;border-right:4px solid #ff1900;border-bottom:4px solid #ff1900;border-left:4px solid #ff1900;border-top-left-radius:0px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:0px;padding-top:var(--global-kb-spacing-sm, 1.5rem);padding-right:var(--global-kb-spacing-sm, 1.5rem);padding-bottom:var(--global-kb-spacing-sm, 1.5rem);padding-left:var(--global-kb-spacing-sm, 1.5rem);min-height:385px;background:rgba(113,128,150,0.46);}.wp-block-kadence-tabs .kt-tabs-id1156_46dabe-41 > .kt-tabs-title-list li{margin-top:0px;margin-right:-4px;margin-bottom:10px;margin-left:0px;}.wp-block-kadence-tabs .kt-tabs-id1156_46dabe-41 > .kt-tabs-title-list li .kt-tab-title, .wp-block-kadence-tabs .kt-tabs-id1156_46dabe-41 > .kt-tabs-content-wrap > .kt-tabs-accordion-title .kt-tab-title{line-height:1.4em;font-weight:inherit;font-style:normal;border-top-width:4px;border-right-width:0px;border-bottom-width:4px;border-left-width:4px;border-top-left-radius:30px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:10px;padding-top:12px;padding-right:0px;padding-bottom:12px;padding-left:20px;border-color:#f60404;color:var(--global-palette5, #444444);background:rgba(113,128,150,0.87);}.wp-block-kadence-tabs .kt-tabs-id1156_46dabe-41 > .kt-tabs-content-wrap > .kt-tabs-accordion-title .kt-tab-title{margin-top:0px;margin-right:-4px;margin-bottom:10px;margin-left:0px;}.wp-block-kadence-tabs .kt-tabs-id1156_46dabe-41 > .kt-tabs-title-list li .kt-tab-title:hover, .wp-block-kadence-tabs .kt-tabs-id1156_46dabe-41 > .kt-tabs-content-wrap > .kt-tabs-accordion-title .kt-tab-title:hover{border-color:var(--global-palette8, #F7FAFC);color:var(--global-palette5, #444444);background:var(--global-palette8, #F7FAFC);}.wp-block-kadence-tabs .kt-tabs-id1156_46dabe-41 > .kt-tabs-title-list li.kt-tab-title-active .kt-tab-title, .wp-block-kadence-tabs .kt-tabs-id1156_46dabe-41 > .kt-tabs-content-wrap > .kt-tabs-accordion-title.kt-tab-title-active .kt-tab-title{border-color:var(--global-palette7, #eeeeee);color:var(--global-palette5, #444444);background:var(--global-palette9, #ffffff);}.wp-block-kadence-tabs .kt-tabs-id1156_46dabe-41{max-width:800px;}@media all and (min-width: 1025px){.wp-block-kadence-tabs .kt-tabs-id1156_46dabe-41{display:flex;}.wp-block-kadence-tabs .kt-tabs-id1156_46dabe-41 > .kt-tabs-title-list{float:none;width:130px;}.wp-block-kadence-tabs .kt-tabs-id1156_46dabe-41 > .kt-tabs-content-wrap{float:none;width:auto;-webkit-flex:1;flex:1;}}@media all and (max-width: 1024px){.kt-tabs-id1156_46dabe-41 > .kt-tabs-content-wrap > .wp-block-kadence-tab{border-top:4px solid #ff1900;border-right:4px solid #ff1900;border-bottom:4px solid #ff1900;border-left:4px solid #ff1900;}}@media all and (min-width: 768px) and (max-width: 1024px){.wp-block-kadence-tabs .kt-tabs-id1156_46dabe-41{display:flex;}.wp-block-kadence-tabs .kt-tabs-id1156_46dabe-41 > .kt-tabs-title-list{float:none;width:130px;}.wp-block-kadence-tabs .kt-tabs-id1156_46dabe-41 > .kt-tabs-content-wrap{float:none;width:auto;-webkit-flex:1;flex:1;}}@media all and (max-width: 767px){.kt-tabs-id1156_46dabe-41 > .kt-tabs-content-wrap > .wp-block-kadence-tab{border-top:4px solid #ff1900;border-right:4px solid #ff1900;border-bottom:4px solid #ff1900;border-left:4px solid #ff1900;min-height:570px;}.wp-block-kadence-tabs .kt-tabs-id1156_46dabe-41{display:flex;max-width:440px;}.wp-block-kadence-tabs .kt-tabs-id1156_46dabe-41 > .kt-tabs-title-list{float:none;width:110px;}.wp-block-kadence-tabs .kt-tabs-id1156_46dabe-41 > .kt-tabs-content-wrap{float:none;width:auto;-webkit-flex:1;flex:1;}.wp-block-kadence-tabs .kt-tabs-id1156_46dabe-41 > .kt-tabs-title-list li .kt-tab-title, .wp-block-kadence-tabs .kt-tabs-id1156_46dabe-41 > .kt-tabs-content-wrap > .kt-tabs-accordion-title .kt-tab-title{padding-top:27px;padding-right:0px;padding-bottom:28px;}}<\/style>\n<div class=\"wp-block-kadence-tabs alignnone\"><div class=\"kt-tabs-wrap kt-tabs-id1156_46dabe-41 kt-tabs-has-6-tabs kt-active-tab-1 kt-tabs-layout-vtabs kt-tabs-tablet-layout-inherit kt-tabs-mobile-layout-vtabs kt-tab-alignment-left\"><ul class=\"kt-tabs-title-list\"><li id=\"tab-proyecto\" class=\"kt-title-item kt-title-item-1 kt-tabs-svg-show-always kt-tabs-icon-side-right kt-tab-title-active\"><a href=\"#tab-proyecto\" data-tab=\"1\" class=\"kt-tab-title kt-tab-title-1\"><span class=\"kt-title-text\">Project<\/span><\/a><\/li><li id=\"tab-estructura\" class=\"kt-title-item kt-title-item-2 kt-tabs-svg-show-always kt-tabs-icon-side-right kt-tab-title-inactive\"><a href=\"#tab-estructura\" data-tab=\"2\" class=\"kt-tab-title kt-tab-title-2\"><span class=\"kt-title-text\">Architecture<\/span><\/a><\/li><li id=\"tab-desarrollo\" class=\"kt-title-item kt-title-item-3 kt-tabs-svg-show-always kt-tabs-icon-side-right kt-tab-title-inactive\"><a href=\"#tab-desarrollo\" data-tab=\"3\" class=\"kt-tab-title kt-tab-title-3\"><span class=\"kt-title-text\">Development<\/span><\/a><\/li><li id=\"tab-capas\" class=\"kt-title-item kt-title-item-4 kt-tabs-svg-show-always kt-tabs-icon-side-right kt-tab-title-inactive\"><a href=\"#tab-capas\" data-tab=\"4\" class=\"kt-tab-title kt-tab-title-4\"><span class=\"kt-title-text\">Layers<\/span><\/a><\/li><li id=\"tab-stack\" class=\"kt-title-item kt-title-item-5 kt-tabs-svg-show-always kt-tabs-icon-side-right kt-tab-title-inactive\"><a href=\"#tab-stack\" data-tab=\"5\" class=\"kt-tab-title kt-tab-title-5\"><span class=\"kt-title-text\">Stack<\/span><\/a><\/li><li id=\"tab-estado\" class=\"kt-title-item kt-title-item-6 kt-tabs-svg-show-always kt-tabs-icon-side-right kt-tab-title-inactive\"><a href=\"#tab-estado\" data-tab=\"6\" class=\"kt-tab-title kt-tab-title-6\"><span class=\"kt-title-text\">Status<\/span><\/a><\/li><\/ul><div class=\"kt-tabs-content-wrap\">\n<div class=\"wp-block-kadence-tab kt-tab-inner-content kt-inner-tab-1 kt-inner-tab1156_09759c-50\"><div class=\"kt-tab-inner-content-inner\">\n<p class=\"has-text-align-center has-theme-palette-9-color has-text-color has-link-color wp-elements-6a0b49f67ca0bd6d70e190571dd7e6aa wp-block-paragraph\">StarkApp emerged as a natural evolution of multiple integration and synchronization projects previously developed for real clients.\n\nAs new requirements kept appearing \u2014 API consumption, data normalization, preventive auditing, report generation, and cross-platform synchronization \u2014 it became clear that a reusable modular architecture was needed to support multiple scenarios without rebuilding the core logic for every new project.<\/p>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-tab kt-tab-inner-content kt-inner-tab-2 kt-inner-tab1156_10a02c-ce\"><div class=\"kt-tab-inner-content-inner\">\n<p class=\"has-theme-palette-9-color has-text-color has-link-color wp-elements-0e17e1f2c580fa6708e39d98d0a3142a wp-block-paragraph\">The system was designed using a decoupled multi-layer architecture.\n\nIts core operates on a unified internal model (<code>ProductSnapshot<\/code>), completely isolating business logic from external platforms.\n\nThe workflow is divided into input, translation, auditing, processing, reporting, and output layers, allowing new sources and destinations to be added without modifying the main Core.\n\nA preventive Audit Layer was also introduced to validate inconsistencies before any real synchronization takes place.<\/p>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-tab kt-tab-inner-content kt-inner-tab-3 kt-inner-tab1156_14d20c-de\"><div class=\"kt-tab-inner-content-inner\">\n<p class=\"has-theme-palette-9-color has-text-color has-link-color wp-elements-32891fbfb99023460001efd5723b8213 wp-block-paragraph\">The project is currently focused on Core validation and operational testing in real inventory environments.\n\nDevelopment is primarily centered on ensuring system stability, data validation, mapping consistency, and operational safety before expanding toward more advanced automation and orchestration layers.\n\nPart of the current architecture emerged through the progressive refactoring of tools previously built for Shopify integrations and multi-feed synchronization.<\/p>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-tab kt-tab-inner-content kt-inner-tab-4 kt-inner-tab1156_b2c700-dd\"><div class=\"kt-tab-inner-content-inner\">\n<ul class=\"wp-block-list\">\n<li class=\"has-theme-palette-9-color has-text-color has-link-color wp-elements-87f6511baa08d886ec9d0c2a9863ec5b\"><strong>Core Layer:<\/strong> Central inventory processing and validation<\/li>\n\n\n\n<li class=\"has-theme-palette-9-color has-text-color has-link-color wp-elements-dbc7cd7917fe1c0294d7ecbdd39325e6\"><strong>Mapper Layer:<\/strong> Translation between external formats and the internal model<\/li>\n\n\n\n<li class=\"has-theme-palette-9-color has-text-color has-link-color wp-elements-1fb72d9f507e30c47e699bf29ddef0ba\"><strong>Audit Layer:<\/strong> Preventive validations and inconsistency detection<\/li>\n\n\n\n<li class=\"has-theme-palette-9-color has-text-color has-link-color wp-elements-cb8c41fe2ad991a73390ca4b971279c2\"><strong>Report Layer:<\/strong> Technical and operational report generation<\/li>\n\n\n\n<li class=\"has-theme-palette-9-color has-text-color has-link-color wp-elements-4aa167fa558368ef6ad7c1196f1d9f90\"><strong>Input \/ Output Layers:<\/strong> Decoupled integration with files, APIs, and external platforms<\/li>\n\n\n\n<li class=\"has-theme-palette-9-color has-text-color has-link-color wp-elements-d13939363267a4926dbb525486b2474c\"><strong>Shopify Adapter:<\/strong> Inventory synchronization via GraphQL API<\/li>\n<\/ul>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-tab kt-tab-inner-content kt-inner-tab-5 kt-inner-tab1156_246e71-b3\"><div class=\"kt-tab-inner-content-inner\">\n<p class=\"has-theme-palette-9-color has-text-color has-link-color wp-elements-2cecc5c315c273561ef400d8e5e0e98f wp-block-paragraph\">C# \u00b7 .NET \u00b7 Shopify GraphQL API \u00b7 REST APIs \u00b7 CSV \/ XLS \/ XLSX Parsing \u00b7 Docker \u00b7 Serilog \u00b7 Multi-Layer Architecture \u00b7 Data Pipelines \u00b7 Operational Auditing<\/p>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-tab kt-tab-inner-content kt-inner-tab-6 kt-inner-tab1156_126382-41\"><div class=\"kt-tab-inner-content-inner\">\n<p class=\"has-theme-palette-9-color has-text-color has-link-color wp-elements-a9932fd33e7781a60984e00dbfb87839 wp-block-paragraph\">StarkApp is currently under active development and internal testing.\n\nThe main goal of this stage is to consolidate a stable and reusable foundation for future multi-platform integrations and automation workflows, prioritizing data consistency, preventive validation, and modular scalability before expanding into more advanced commercial capabilities.<\/p>\n<\/div><\/div>\n<\/div><\/div><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>","protected":false},"excerpt":{"rendered":"<p>Casos reales y proyectos propios enfocados en integraci\u00f3n de sistemas, l\u00f3gica de negocio y resoluci\u00f3n de problemas t\u00e9cnicos. \u2013 \u201c\u00a1Tony Stark hizo esto en una cueva! \u00a1Con una caja de basura!\u201d Casos Reales Integraciones desarrolladas para automatizaci\u00f3n de inventario, sincronizaci\u00f3n de plataformas y procesamiento operativo de datos. Frameworks y herramientas Desarrollo de herramientas modulares orientadas&#8230;<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"class_list":["post-1156","page","type-page","status-publish","hentry"],"_hostinger_reach_plugin_has_subscription_block":false,"_hostinger_reach_plugin_is_elementor":false,"_links":{"self":[{"href":"https:\/\/jackstark.io\/en\/wp-json\/wp\/v2\/pages\/1156","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jackstark.io\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/jackstark.io\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/jackstark.io\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jackstark.io\/en\/wp-json\/wp\/v2\/comments?post=1156"}],"version-history":[{"count":68,"href":"https:\/\/jackstark.io\/en\/wp-json\/wp\/v2\/pages\/1156\/revisions"}],"predecessor-version":[{"id":1661,"href":"https:\/\/jackstark.io\/en\/wp-json\/wp\/v2\/pages\/1156\/revisions\/1661"}],"wp:attachment":[{"href":"https:\/\/jackstark.io\/en\/wp-json\/wp\/v2\/media?parent=1156"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}