---
title: "Emilio Potenza — Product Owner at Aruba"
description: "Product Owner and Team Manager across shared frontends, CMS, brand sites and commerce. Ten years in enterprise software, five in bioinformatics."
lang: en
canonical: https://potenza.dev/
alternate:
  it: https://potenza.dev/it/index.md
author: "Emilio Potenza"
---

> Site index
> Markdown pages are indexed at https://potenza.dev/llms.txt

product owner · team leader · senior frontend developer · bioinformatics

# Emilio Potenza

Enterprise digital products, from the first solution sketch to delivery, on architectures that refuse to be simple. Seasoned with AI.

[Curious? Start here](https://potenza.dev/about/)

astro-island,astro-slot,astro-static-slot{display:contents}(()=>{var a=(s,i,o)=>{let r=async()=>{await(await s())()},t=typeof i.value=="object"?i.value:void 0,c={rootMargin:t==null?void 0:t.rootMargin},n=new IntersectionObserver(e=>{for(let l of e)if(l.isIntersecting){n.disconnect(),r();break}},c);for(let e of o.children)n.observe(e)};(self.Astro||(self.Astro={})).visible=a;window.dispatchEvent(new Event("astro:visible"));})();(()=>{var g=Object.defineProperty;var w=(a,s,c)=>s in a?g(a,s,{enumerable:!0,configurable:!0,writable:!0,value:c}):a\[s\]=c;var l=(a,s,c)=>w(a,typeof s!="symbol"?s+"":s,c);var E=new Set(\["\_\_proto\_\_","constructor","prototype"\]);{let a={0:t=>y(t),1:t=>c(t),2:t=>new RegExp(t),3:t=>new Date(t),4:t=>new Map(c(t)),5:t=>new Set(c(t)),6:t=>BigInt(t),7:t=>new URL(t),8:t=>new Uint8Array(t),9:t=>new Uint16Array(t),10:t=>new Uint32Array(t),11:t=>Number.POSITIVE\_INFINITY\*t},s=t=>{let\[p,e\]=t;return p in a?a\[p\](e):void 0},c=t=>t.map(s),y=t=>typeof t!="object"||t===null?t:Object.fromEntries(Object.entries(t).map((\[p,e\])=>\[p,s(e)\]));class f extends HTMLElement{constructor(){super(...arguments);l(this,"Component");l(this,"hydrator");l(this,"hydrate",async()=>{var b;if(!this.hydrator||!this.isConnected)return;let e=(b=this.parentElement)==null?void 0:b.closest("astro-island\[ssr\]");if(e){e.addEventListener("astro:hydrate",this.hydrate,{once:!0});return}let r=this.querySelectorAll("astro-slot"),n={},d=this.querySelectorAll("template\[data-astro-template\]");for(let o of d){let i=o.closest(this.tagName);i!=null&&i.isSameNode(this)&&(n\[o.getAttribute("data-astro-template")||"default"\]=o.innerHTML,o.remove())}for(let o of r){let i=o.closest(this.tagName);i!=null&&i.isSameNode(this)&&(n\[o.getAttribute("name")||"default"\]=o.innerHTML)}let u;try{u=this.hasAttribute("props")?y(JSON.parse(this.getAttribute("props"))):{}}catch(o){let i=this.getAttribute("component-url")||"<unknown>",v=this.getAttribute("component-export");throw v&&(i+=\` (export ${v})\`),console.error(\`\[hydrate\] Error parsing props for component ${i}\`,this.getAttribute("props"),o),o}let h;await this.hydrator(this)(this.Component,u,n,{client:this.getAttribute("client")}),this.removeAttribute("ssr"),this.dispatchEvent(new CustomEvent("astro:hydrate"))});l(this,"unmount",()=>{this.isConnected||this.dispatchEvent(new CustomEvent("astro:unmount"))})}disconnectedCallback(){document.removeEventListener("astro:after-swap",this.unmount),document.addEventListener("astro:after-swap",this.unmount,{once:!0})}connectedCallback(){if(!this.hasAttribute("await-children")||document.readyState==="interactive"||document.readyState==="complete")this.childrenConnectedCallback();else{let e=()=>{document.removeEventListener("DOMContentLoaded",e),r.disconnect(),this.childrenConnectedCallback()},r=new MutationObserver(()=>{var n;((n=this.lastChild)==null?void 0:n.nodeType)===Node.COMMENT\_NODE&&this.lastChild.nodeValue==="astro:end"&&(this.lastChild.remove(),e())});r.observe(this,{childList:!0}),document.addEventListener("DOMContentLoaded",e)}}async childrenConnectedCallback(){let e=this.getAttribute("before-hydration-url");e&&await import(e),this.start()}getRetryImportUrl(e){let r=new URL(e,document.baseURI);return r.searchParams.set("astro-retry",Date.now().toString()),r.toString()}async importWithRetry(e){try{return await import(e)}catch(r){return await new Promise(n=>setTimeout(n,1e3)),import(this.getRetryImportUrl(e))}}handleHydrationError(e){let r=this.getAttribute("component-url"),n=new CustomEvent("astro:hydration-error",{cancelable:!0,bubbles:!0,composed:!0,detail:{error:e,componentUrl:r}});this.dispatchEvent(n)&&console.error(\`\[astro-island\] Error hydrating ${r}\`,e)}async start(){let e=JSON.parse(this.getAttribute("opts")),r=this.getAttribute("client");if(Astro\[r\]===void 0){window.addEventListener(\`astro:${r}\`,()=>this.start(),{once:!0});return}try{await Astro\[r\](async()=>{let n=this.getAttribute("renderer-url");try{let\[d,{default:u}\]=await Promise.all(\[this.importWithRetry(this.getAttribute("component-url")),n?this.importWithRetry(n):Promise.resolve({default:()=>()=>{}})\]),h=this.getAttribute("component-export")||"default";if(h.includes(".")){this.Component=d;for(let m of h.split(".")){if(E.has(m)||!this.Component||typeof this.Component!="object"&&typeof this.Component!="function"||!Object.hasOwn(this.Component,m))throw new Error(\`Invalid component export path: ${h}\`);this.Component=this.Component\[m\]}}else{if(E.has(h))throw new Error(\`Invalid component export path: ${h}\`);this.Component=d\[h\]}return this.hydrator=u,this.hydrate}catch(d){return this.handleHydrationError(d),()=>{}}},e,this)}catch(n){this.handleHydrationError(n)}}attributeChangedCallback(){this.hydrate()}}l(f,"observedAttributes",\["props"\]),customElements.get("astro-island")||customElements.define("astro-island",f)}})();

Selected brands I've worked with

-   Ducati
-   Lamborghini
-   Edenred
-   Eli Lilly
-   Marelli
-   Pramac
-   YOOX Net-A-Porter
-   Aruba

Product Owner at Aruba. Almost two decades of code — from DNA sequencing to frontend architecture.

expertise

## [What I do](https://potenza.dev/expertise/)

-   ### Digital products & design systems
    
    Work on shared frontends combines product ownership, team management and technical direction.
    
-   ### CMS & content architecture
    
    A CMS needs to connect content models, editorial workflows and channels.
    
-   ### Brand sites & web experience
    
    Websites, configurators and apps need to stay consistent across products and markets.
    
-   ### eCommerce
    
    An enterprise commerce platform needs to cover sales, services and after-sales.
    
-   ### AI & Machine Learning
    
    Five years of bioinformatics research produced predictive models, data pipelines and databases.
    

portfolio

## [Selected work](https://potenza.dev/journey/)

2017 – 2026

### Ducati

Frontend lead & solution architect (as a consultant)

The brand website, the bike configurator and the CMS behind them, followed for years, up to leading the move to a composable stack.

2021 – 2023

### Edenred

Technical team leader (as a consultant)

Frontend technical team leader on a micro-frontend re-platforming of a large employee-benefits platform, delivered with multiple suppliers.

2025 – today

### Aruba

Solution design → Product Owner

I first got to know Aruba as a consultant, working on a few of their projects. Now I've taken on the challenge of leading a very capable frontend team through the frontend renewal of some long-standing Aruba products.

Writing

## [Selected writing](https://potenza.dev/writing/)

-   Content
    
    1 Aug 2026·4 min read
    
    ## [When a website is readable by an agent, too](https://potenza.dev/writing/agent-readable-websites/)
    
    A website becomes useful to agents when its information has recognisable sources, explicit relationships, and consistent content.
    
-   Digital
    
    1 Aug 2026·6 min read
    
    ## [When frontend becomes a platform](https://potenza.dev/writing/the-shared-frontend/)
    
    In a company with many products, frontend work is not just about consistent interfaces. It has to make the decisions teams take together easier to live with.
    
-   AI
    
    1 Aug 2026·4 min read
    
    ## [Is there still room for doubt?](https://potenza.dev/writing/is-there-still-room-for-doubt/)
    
    When a polished answer arrives without verification, our job is to decide what has actually earned our trust.
    

My inbox is open — ideas, questions, or a decent argument about life, the universe and everything.

[Get in touch](https://potenza.dev/contact/)
