[{"data":1,"prerenderedAt":470},["ShallowReactive",2],{"$77hSeXQoip":3,"homepage-experience":55,"homepage-expertise":112,"mdc--cjqki5-key":194,"mdc-mws1lt-key":245,"mdc-lvrkrc-key":253,"mdc--k9b6vw-key":261,"mdc--4oo2i-key":269,"mdc-kdxfgn-key":277,"mdc-mml1fp-key":295,"mdc-mti01h-key":303,"mdc--oc51kf-key":311,"mdc--kcape5-key":319,"homepage-featured-projects":327},{"id":4,"title":5,"aboutCopy":6,"aboutLabel":7,"aboutLinkLabel":8,"aboutLinkTo":9,"aboutTitle":10,"body":11,"contactCopy":18,"contactEmailLabel":19,"contactGitHubLabel":20,"contactLabel":21,"contactLinkedInLabel":22,"contactLocation":23,"contactTitle":24,"description":15,"experienceIntro":25,"experienceLabel":26,"experienceTitle":27,"extension":28,"eyebrow":29,"heroAvailability":30,"heroLabel":31,"heroLede":32,"heroLocation":33,"heroPrimaryAction":34,"heroPrimaryTo":35,"heroSecondaryAction":36,"heroSecondaryTo":9,"heroTitle":37,"lede":38,"meta":39,"navigation":40,"path":41,"portrait":38,"practiceLabel":42,"practiceTitle":43,"resumeBackgroundLabel":38,"resumeBackgroundTitle":38,"resumeCustomers":44,"resumeCustomersLabel":38,"resumeCustomersTitle":38,"resumeEducationLabel":38,"resumeEmail":38,"resumeLinks":45,"resumeLocation":38,"resumePrintLabel":38,"resumeProfileLabel":38,"resumeProfileTitle":38,"resumeProjectsLabel":38,"resumeProjectsTitle":38,"resumeSkills":46,"resumeSkillsLabel":38,"resumeSkillsTitle":38,"resumeSummary":38,"resumeTitle":38,"seo":47,"seoDescription":48,"seoTitle":38,"slug":49,"stem":49,"workLabel":50,"workLede":51,"workProjectsTitle":52,"workTitle":53,"__hash__":54},"pages/home.md","Arne Decant","I'm Arne, a software engineer based in Belgium. I enjoy working where engineering, interaction design, and product thinking overlap. Outside professional product work, I experiment with generative visuals, Three.js, home automation, and self-hosted systems.","04 / About","More about my journey","/about","Engineering, interaction design, and product thinking in the same room.",{"type":12,"value":13,"toc":14},"minimark",[],{"title":15,"searchDepth":16,"depth":16,"links":17},"",2,[],"I'm interested in senior engineering roles where I can combine frontend architecture, technical ownership, and thoughtful product development.","Email me","View GitHub ↗","05 / Contact","Connect on LinkedIn ↗","Belgium · Available for senior software engineering opportunities","Have a complex product that needs clarity?","I'm a senior software engineer focused on frontend architecture, product ownership, and complex interactive systems. My work spans livestream production, real-time communication, browser-based 3D experiences, and reusable Vue component systems.","02 / Experience","A decade moving from full-lifecycle web work to high-stakes product systems.","md","Hi, my name is","Available for senior software engineering opportunities","SENIOR SOFTWARE ENGINEER · WEB ARCHITECT","I’m a software engineer based in Belgium. For over a decade, I’ve been building interfaces, tools, and the systems behind them. I care about how they feel to use and how they hold up over time.","Based in Belgium","Explore my work","#work","Read about me","Hi, my name\nis Arne.",null,{},true,"/","03 / Practice","I work across the product, interface, and system behind it.",[],[],[],{"title":5,"description":15},"Arne Decant - software engineer building tools and interfaces.","home","01 / Selected work","A selection of personal projects and experiments. Each one is a way to work through a different kind of complexity, from component APIs to physical telemetry and real-time graphics.","Featured projects","Systems I build, shape, and keep understandable.","FbMbqq6JU21VhcMpLY_68cZM5MbctrSaca_kB4UwJvk",[56,76,94],{"id":57,"title":58,"extension":28,"highlights":59,"kind":63,"meta":64,"order":70,"organization":71,"period":72,"stem":73,"summary":74,"__hash__":75},"experience/experience/kiswe.md","Senior Software Engineer",[60,61,62],"Build and evolve complex interfaces under real-time and live-production constraints.","Initiated and led a shared component library across products, defining reusable UI patterns and component APIs to improve consistency and maintainability.","Bridge product and engineering concerns with a focus on clarity, reliability, maintainability, and UX.","work",{"path":65,"description":15,"body":66},"/experience/kiswe",{"type":12,"value":67,"toc":68},[],{"title":15,"searchDepth":16,"depth":16,"links":69},[],"1","Kiswe","2020 - present","experience/kiswe","At Kiswe, I contribute frontend engineering and product thinking to the teams behind [Kiswe Core](https://www.kiswe.com/kiswe-core) and [Kiswe Connect](https://www.kiswe.com/kiswe-connect), tools for live-stream production and fan engagement. As part of that work, I helped build the software behind Olympic Broadcasting Services' [Athlete Moment](https://www.sportsvideo.org/2024/05/30/paris-2024-obs-doubles-down-on-athlete-moment-initiative/) at the [Olympic Games](https://www.kiswe.com/news/reflections-from-the-2024-olympics), enabling friends and family to connect with athletes via live video after their events.","BXHPBHXY7cgYQ-vVOG0RZ8vrs-CiMZlOHsEswkyCzkk",{"id":77,"title":78,"extension":28,"highlights":79,"kind":63,"meta":82,"order":88,"organization":89,"period":90,"stem":91,"summary":92,"__hash__":93},"experience/experience/nanopixel.md","Product Owner & Lead Developer",[80,81],"Helped build [Showreal](https://www.showreal.immo/) from the ground up and created a small custom framework for the tool.","Solved kiosk and touch interaction problems, including navigation through a custom physical cylinder.",{"path":83,"description":15,"body":84},"/experience/nanopixel",{"type":12,"value":85,"toc":86},[],{"title":15,"searchDepth":16,"depth":16,"links":87},[],"2","Nanopixel","2018 - 2020","experience/nanopixel","Built an interactive sales tool for real-estate showrooms, combining a touch interface, a wall display, and Node.js communication.","FYsZTUew7EUgCIey3sB1JeeiC46NYi8zOl_OJK-40T8",{"id":95,"title":96,"extension":28,"highlights":97,"kind":63,"meta":100,"order":106,"organization":107,"period":108,"stem":109,"summary":110,"__hash__":111},"experience/experience/ris.md","Frontend Web Developer",[98,99],"Worked across design, frontend implementation, SEO, deployment, and email campaigns.","Developed a lasting specialization in CSS and SCSS while learning the full web project lifecycle.",{"path":101,"description":15,"body":102},"/experience/ris",{"type":12,"value":103,"toc":104},[],{"title":15,"searchDepth":16,"depth":16,"links":105},[],"3","RIS","2014 - 2018","experience/ris","Designed, developed, launched, and maintained WordPress sites for a broad range of clients.","PKxw80fR9XW_11MIso-9f9yrSPU3W8DoEBiUMSNVElU",[113,133,154,174],{"id":114,"title":115,"description":116,"extension":28,"items":117,"meta":124,"order":70,"resumeFeatured":130,"stem":131,"__hash__":132},"expertise/expertise/frontend-architecture.md","Frontend architecture","Shape application structure and component APIs that keep complex workflows understandable as products evolve.",[118,119,120,121,122,123],"Vue 3","TypeScript","Nuxt","Complex state and workflows","Component API design","Performance and maintainability",{"path":125,"body":126},"/expertise/frontend-architecture",{"type":12,"value":127,"toc":128},[],{"title":15,"searchDepth":16,"depth":16,"links":129},[],false,"expertise/frontend-architecture","NExgp5o3aRF3cdVjCjS1cY0RvGMGdGg17UaQlSJBM9o",{"id":134,"title":135,"description":136,"extension":28,"items":137,"meta":146,"order":88,"resumeFeatured":40,"stem":152,"__hash__":153},"expertise/expertise/design-systems.md","Design systems and UX","Make the next change easier through reusable primitives, clear documentation, accessible defaults, and predictable APIs.",[138,139,140,141,142,143,144,145],"Component APIs","Reusable components","Storybook","Design tokens","Accessibility","Product-minded UX","Documentation","Package architecture",{"path":147,"body":148},"/expertise/design-systems",{"type":12,"value":149,"toc":150},[],{"title":15,"searchDepth":16,"depth":16,"links":151},[],"expertise/design-systems","bzQIMcNxZVx67KEheSOa6JsjxM3XhLCaFQsxTT489MA",{"id":155,"title":156,"description":157,"extension":28,"items":158,"meta":166,"order":106,"resumeFeatured":40,"stem":172,"__hash__":173},"expertise/expertise/quality-and-delivery.md","Quality and delivery","Treat testing, review, and delivery as part of the product, not a final checkpoint.",[159,160,161,162,163,164,165],"Vitest","Playwright","Static analysis","Code review","CI/CD","Testing strategy","Git",{"path":167,"body":168},"/expertise/quality-and-delivery",{"type":12,"value":169,"toc":170},[],{"title":15,"searchDepth":16,"depth":16,"links":171},[],"expertise/quality-and-delivery","cmiPlXGNsWkti_JeplvU9HINWyvZX0VBCdunYPro6Tw",{"id":175,"title":176,"description":177,"extension":28,"items":178,"meta":185,"order":191,"resumeFeatured":130,"stem":192,"__hash__":193},"expertise/expertise/interactive-systems.md","Interactive and real-time systems","Work comfortably where timing, state, media, and visual feedback make the interface harder to reason about.",[179,180,181,182,183,184],"Three.js","WebGL and GLSL","Web Audio","WebSockets","Live video workflows","Multi-screen experiences",{"path":186,"body":187},"/expertise/interactive-systems",{"type":12,"value":188,"toc":189},[],{"title":15,"searchDepth":16,"depth":16,"links":190},[],"4","expertise/interactive-systems","CI4UKn_PHeP9pQpd7uoldvaWwymTaX71-OSZP8faVUE",{"data":195,"body":196},{},{"type":197,"children":198},"root",[199],{"type":200,"tag":201,"props":202,"children":203},"element","p",{},[204,207,216,218,225,227,234,236,243],{"type":205,"value":206},"text","At Kiswe, I contribute frontend engineering and product thinking to the teams behind ",{"type":200,"tag":208,"props":209,"children":213},"a",{"href":210,"rel":211},"https://www.kiswe.com/kiswe-core",[212],"nofollow",[214],{"type":205,"value":215},"Kiswe Core",{"type":205,"value":217}," and ",{"type":200,"tag":208,"props":219,"children":222},{"href":220,"rel":221},"https://www.kiswe.com/kiswe-connect",[212],[223],{"type":205,"value":224},"Kiswe Connect",{"type":205,"value":226},", tools for live-stream production and fan engagement. As part of that work, I helped build the software behind Olympic Broadcasting Services' ",{"type":200,"tag":208,"props":228,"children":231},{"href":229,"rel":230},"https://www.sportsvideo.org/2024/05/30/paris-2024-obs-doubles-down-on-athlete-moment-initiative/",[212],[232],{"type":205,"value":233},"Athlete Moment",{"type":205,"value":235}," at the ",{"type":200,"tag":208,"props":237,"children":240},{"href":238,"rel":239},"https://www.kiswe.com/news/reflections-from-the-2024-olympics",[212],[241],{"type":205,"value":242},"Olympic Games",{"type":205,"value":244},", enabling friends and family to connect with athletes via live video after their events.",{"data":246,"body":247},{},{"type":197,"children":248},[249],{"type":200,"tag":201,"props":250,"children":251},{},[252],{"type":205,"value":60},{"data":254,"body":255},{},{"type":197,"children":256},[257],{"type":200,"tag":201,"props":258,"children":259},{},[260],{"type":205,"value":61},{"data":262,"body":263},{},{"type":197,"children":264},[265],{"type":200,"tag":201,"props":266,"children":267},{},[268],{"type":205,"value":62},{"data":270,"body":271},{},{"type":197,"children":272},[273],{"type":200,"tag":201,"props":274,"children":275},{},[276],{"type":205,"value":92},{"data":278,"body":279},{},{"type":197,"children":280},[281],{"type":200,"tag":201,"props":282,"children":283},{},[284,286,293],{"type":205,"value":285},"Helped build ",{"type":200,"tag":208,"props":287,"children":290},{"href":288,"rel":289},"https://www.showreal.immo/",[212],[291],{"type":205,"value":292},"Showreal",{"type":205,"value":294}," from the ground up and created a small custom framework for the tool.",{"data":296,"body":297},{},{"type":197,"children":298},[299],{"type":200,"tag":201,"props":300,"children":301},{},[302],{"type":205,"value":81},{"data":304,"body":305},{},{"type":197,"children":306},[307],{"type":200,"tag":201,"props":308,"children":309},{},[310],{"type":205,"value":110},{"data":312,"body":313},{},{"type":197,"children":314},[315],{"type":200,"tag":201,"props":316,"children":317},{},[318],{"type":205,"value":98},{"data":320,"body":321},{},{"type":197,"children":322},[323],{"type":200,"tag":201,"props":324,"children":325},{},[326],{"type":205,"value":99},[328,351,374,405,423,451],{"id":329,"title":330,"abbreviation":38,"category":38,"confidential":130,"description":331,"era":38,"extension":28,"featureWeight":38,"featured":40,"github":332,"link":333,"logo":334,"meta":337,"order":70,"resumeFeatured":40,"role":38,"slug":345,"status":38,"stem":346,"summary":347,"tech":348,"thumbnail":38,"timeline":38,"__hash__":350},"projects/projects/nyxkit.md","NyxKit","NyxKit is my personal design system and component library that powers multiple apps and experiments.","https://github.com/nyxkit/nyx-kit","https://nyxkit.github.io/nyx-kit",{"src":335,"alt":336},"/images/nyx-kit-logo.svg","Nyx Kit purple ribbon monogram logo",{"path":338,"body":339},"/projects/nyxkit",{"type":12,"value":340,"toc":343},[341],[201,342,331],{},{"title":15,"searchDepth":16,"depth":16,"links":344},[],"nyxkit","projects/nyxkit","A reusable Vue 3 component library and design system used across my applications and experiments, combining TypeScript component APIs, SCSS styling, and shared application patterns.",[118,119,349],"SCSS","vUl6iIJ_bYbeiFSj9pr1SrRKewtV4UVZlUXN-hPKDrE",{"id":352,"title":353,"abbreviation":38,"category":38,"confidential":130,"description":354,"era":38,"extension":28,"featureWeight":38,"featured":40,"github":355,"link":356,"logo":357,"meta":360,"order":88,"resumeFeatured":40,"role":38,"slug":368,"status":38,"stem":369,"summary":370,"tech":371,"thumbnail":38,"timeline":38,"__hash__":373},"projects/projects/nyx-fission.md","Nyx Fission","Nyx Fission handles media sampling, particle rendering, resizing, and cleanup behind a framework-independent API. The live playground lets you explore its themes, luma keying, entrance animations, and pointer interactions.","https://github.com/NyxKit/nyx-fission","https://nyxkit.github.io/nyx-fission/",{"src":358,"alt":359},"/images/nyx-fission-logo.svg","Nyx Fission particle F logo",{"path":361,"body":362},"/projects/nyx-fission",{"type":12,"value":363,"toc":366},[364],[201,365,354],{},{"title":15,"searchDepth":16,"depth":16,"links":367},[],"nyx-fission","projects/nyx-fission","A framework-independent WebGL library that transforms images, video, and webcam feeds into interactive particle fields. Handles media sampling, rendering, resizing, and cleanup; powers my portfolio's animated portrait.",[119,372,179],"WebGL","SEpBuIqAh2mzmBqPEAQU31dCwP4ranuRknHzTyBWHWo",{"id":375,"title":376,"abbreviation":38,"category":377,"confidential":130,"description":378,"era":379,"extension":28,"featureWeight":38,"featured":40,"github":380,"link":38,"logo":381,"meta":384,"order":106,"resumeFeatured":130,"role":395,"slug":396,"status":397,"stem":398,"summary":399,"tech":400,"thumbnail":38,"timeline":38,"__hash__":404},"projects/projects/anthos.md","Anthos","Local-first plant monitoring platform","Anthos explores the full product loop from physical sensor nodes to a durable, home-hosted dashboard. Nodes push telemetry to a TypeScript server, which ingests readings, stores them, exposes API data, and serves the dashboard from the same deployment.","Recent work","https://github.com/NyxKit/anthos",{"src":382,"alt":383},"/images/anthos-logo.svg","Anthos purple circuit leaf logo",{"path":385,"body":386},"/projects/anthos",{"type":12,"value":387,"toc":393},[388,390],[201,389,378],{},[201,391,392],{},"The current direction is plant monitoring and care. Auto-watering is outside the MVP and is not presented as a shipped feature.",{"title":15,"searchDepth":16,"depth":16,"links":394},[],"Product engineer","anthos","Personal project in active development","projects/anthos","A local-first plant monitoring and care platform connecting M5Stack nodes, a TypeScript ingestion server, and a Vue dashboard.",[401,119,402,118,403],"M5Stack AtomS3 Lite","Express","Tauri","0ZaH5LEyyIbgQ_QQwrDeGnjH7ZJEdCZwvWA92u2zbJk",{"id":406,"title":407,"abbreviation":408,"category":38,"confidential":130,"description":15,"era":38,"extension":28,"featureWeight":38,"featured":40,"github":409,"link":410,"logo":411,"meta":412,"order":106,"resumeFeatured":130,"role":38,"slug":418,"status":38,"stem":419,"summary":420,"tech":421,"thumbnail":38,"timeline":38,"__hash__":422},"projects/projects/video-projection-mapping.md","Video Projection Mapping","VPM","https://www.github.com/arnedecant/video-projection-mapping","https://arnedecant.github.io/video-projection-mapping",{"alt":408},{"path":413,"body":414},"/projects/video-projection-mapping",{"type":12,"value":415,"toc":416},[],{"title":15,"searchDepth":16,"depth":16,"links":417},[],"video-projection-mapping","projects/video-projection-mapping","An interactive 3D video projection mapping application built with Three.js that creates dynamic, mask-based video projections on 3D cube grids. Users can interact with different projection patterns through mouse hover effects and switch between various video-mask combinations.",[372,119,349],"iYAROpU-wTcnnJgWfcDFctzVttYTaKr7zlHX9IrmqDo",{"id":424,"title":425,"abbreviation":38,"category":426,"confidential":130,"description":427,"era":379,"extension":28,"featureWeight":38,"featured":40,"github":428,"link":38,"logo":429,"meta":432,"order":191,"resumeFeatured":40,"role":395,"slug":443,"status":397,"stem":444,"summary":445,"tech":446,"thumbnail":38,"timeline":38,"__hash__":450},"projects/projects/nyx-notes.md","Nyx Notes","Self-hosted Markdown notes product","Nyx Notes keeps notes as plain Markdown files, with a Rust workspace providing filesystem storage, an Axum server, authentication, a CLI, and a Tauri shell. The Vue application uses Nyx Kit and NyxEditor, with REST and typed SSE subscriptions for live note and vault data.","https://github.com/NyxKit/nyx-notes",{"src":430,"alt":431},"/images/nyx-notes-logo.svg","Nyx Notes lavender N note logo",{"path":433,"body":434},"/projects/nyx-notes",{"type":12,"value":435,"toc":441},[436,438],[201,437,427],{},[201,439,440],{},"Comments live in JSON sidecars anchored to selected text. Optional end-to-end encryption and AI are future directions, not shipped features.",{"title":15,"searchDepth":16,"depth":16,"links":442},[],"nyx-notes","projects/nyx-notes","A self-hosted notes application in active development, with plain Markdown files as its source of truth. Combines a Rust backend, Vue interface, CLI, and Tauri shell, with REST and typed SSE for live updates.",[447,118,403,448,449],"Rust","REST","SSE","bDLaOoQPo2KAohJRp1j1AuqPRY7Hwy_i5eZrsqBQgUk",{"id":452,"title":453,"abbreviation":454,"category":38,"confidential":130,"description":15,"era":38,"extension":28,"featureWeight":38,"featured":40,"github":455,"link":456,"logo":457,"meta":458,"order":191,"resumeFeatured":130,"role":38,"slug":464,"status":38,"stem":465,"summary":466,"tech":467,"thumbnail":38,"timeline":38,"__hash__":469},"projects/projects/webcam-audio-visualiser.md","Webcam Audio Visualiser","WAV","https://github.com/arnedecant/audio-visualiser","https://arnedecant.github.io/audio-visualiser",{"alt":454},{"path":459,"body":460},"/projects/webcam-audio-visualiser",{"type":12,"value":461,"toc":462},[],{"title":15,"searchDepth":16,"depth":16,"links":463},[],"webcam-audio-visualiser","projects/webcam-audio-visualiser","An interactive 3D audio-visual experience that transforms your webcam feed into a dynamic particle matrix. The application maps video pixels onto particles arranged on a 3D plane and animates them in real-time based on audio frequency analysis, creating a mesmerizing visual representation of music.",[468,372,119,349],"Vue","ENP_dfvRcJVAnZ-_VIQ6_bstDUxorrshYixXU-6YTg0",1789563177395]