Cantabria, Spain · open to conversations

DiegoPortillaTejería

Senior Front-End Developer Interfaces that hold up in production, and 3D experiences in the browser.

  • 9 years in the trade
  • 8 with Vue
  • 5 in 3D and WebXR

01Who

From industrial ERPs to 3D scenes in the browser

Front-end developer based in northern Spain, with close to a decade of shipping interfaces that hold up in production. I started on industrial ERPs — power distribution, automotive, petrochemical — and since 2021 I have focused on 3D experiences in the browser: showrooms and configurators built with Babylon.js on Vue 3 and Nuxt. AI agents are part of my daily workflow rather than a demo: review, refactor and documentation, with my own judgement applied to whatever comes back. Off the clock I run whole systems end to end: a Nuxt 4 + Medusa storefront, two algorithmic trading systems in Python with their own test suite, and a local RAW editor whose engine answers equally to its Vue interface and to an AI agent over MCP.

What I took from the ERP years is not the domain, it is the discipline: when two hundred people use a screen eight hours a day, a value computed in two places will eventually tell two different stories. That habit — one owner per fact — is what I now apply to a 3D configurator or a trading engine.

I work remotely from northern Spain, in Scrum and Kanban, talking directly to whoever commissioned the work. I write the technical documentation that ships with it, because a project only its author understands is half-delivered.

  • eCommerce & luxury retail
  • Hardware & data centres
  • Automotive
  • Energy & petrochemical
  • Power distribution
  • Logistics & distribution
  • Insurance

02Track record

Nine years, four chapters, one constant

Each block takes up as much of the bar as it took of the calendar. Client names are deliberately absent: the public CV has never named them.

  1. Sep 2021 — Present

    5 yrs

    Senior Front-End Developer

    AccentureRemote, Spain

    • 3D showroom and virtual tour for a global data-centre hardware manufacturer: Vue widget, 3D asset integration into the page, animation design, and maintenance driven by client feedback.
    • 3D product configurator for luxury fashion brands, as experience product lead: Vue application from scratch, integration with the existing services, and an eCommerce flow with 3D customisation.
    • Digital asset pipeline (glTF/Babylon.js) and iteration with the 3D art team to fit models to the framework and to the page budget.
    • Configurator and augmented-reality proofs of concept for retail and large distribution, plus bespoke widgets embeddable in third-party sites.
    • AI-agent-assisted development woven into the daily workflow: generation and refactoring under my own review, technical documentation, and automation of repeated tasks. The tooling adds speed; the judgement about what ships and what gets thrown away stays mine.
    • Scrum and Kanban, direct client meetings for continuous development and feedback, and Jira ticketing for maintenance.
    • Fully remote work with distributed teams and international clients, sustaining delivery and performance reviews throughout.
    • Vue 3
    • Nuxt
    • Babylon.js
    • WebGL
    • WebXR
    • TypeScript
    • JavaScript
    • SCSS
    • Jira
    • AWS
    • Azure
  2. Mar 2019 — Sep 2021

    2 yrs 6 mos

    Vue.js Front-End Developer

    FIELDEASSantander, Cantabria, Spain

    • Part of the team behind the ERP for the largest car company in Spain.
    • Main web developer for the ERP of the chemical division of one of the largest energy and petrochemical companies in the world.
    • Hybrid web and mobile applications with Vue.js, against MySQL and SQL Server databases and third-party APIs.
    • Co-authoring of the technical documentation delivered to clients.
    • Vue.js
    • JavaScript
    • HTML
    • CSS
    • MySQL
    • SQL Server
    • REST
  3. Apr 2018 — Mar 2019

    11 mos

    Developer

    FIELDEASSantander, Cantabria, Spain

    • Rebuilt the ERP of one of the largest electricity distribution companies in Spain using Vue.js.
    • Final degree project on augmented reality in Android and Java, targeting AR glasses.
    • Vue.js
    • JavaScript
    • Java
    • Android
    • AR
    • MySQL
    • SQL Server
  4. Jun 2017 — Apr 2018

    10 mos

    Web & Mobile Developer — Internship

    NetkiaTorrelavega, Cantabria, Spain

    • Maintenance of the existing AngularJS 1.5 projects.
    • CMS and mobile application for a small insurance company.
    • Kick-off of a PHP project for a mining company.
    • AngularJS 1.5
    • JavaScript
    • HTML
    • CSS
    • PHP
  5. Sep 2014 — Feb 2019

    education

    BSc in Computer Engineering

    Universidad de CantabriaSantander, Cantabria, Spain

    • Final degree project on augmented reality in Android and Java.

2017 → 2026

03Toolkit

What I use, and how far I take it

The levels are honest rather than aspirational: a 55 means I can find my way around, not that I own it.

Front-end

  • Vue 3 · Composition API
  • JavaScript (ES2023)
  • CSS3 · SCSS
  • Pinia · Vue Router
  • Nuxt 4 · SSR · Nitro
  • Vuetify
  • Vite · PWA / Workbox
  • TypeScript

3D · WebXR

  • Babylon.js
  • GSAP · animación
  • glTF · pipeline de assets
  • WebGL
  • AR (Android · Java)

Platform & data

  • Node.js
  • Python
  • Vercel · Cloudflare · VPS
  • Cloudflare Workers · D1 · R2
  • GitHub Actions · CI/CD
  • PostgreSQL · SQLite · MySQL
  • Medusa 2.0 · headless commerce

Ways of working

  • Scrum · Kanban
  • AI-assisted development
  • Client-facing work
  • Technical documentation
  • Vitest · pytest
  • AWS · Azure (básico)

Languages

  • Spanish Native
  • English B2

04Off the clock

What I build when nobody asked me to

My own systems, in production, with real users and real incidents. The forks I keep around for convenience are not here.

Coffee log
01live

Coffee log

A V60 brew log on Cloudflare Workers and D1

Tetsu Kasuya’s 4:6 method, one variable per brew. App and API on the same Worker, data in D1, photos in R2, session on an HttpOnly cookie.

  • 160+commits
  • 17endpoints
  • 1origins
  • Cloudflare Workers
  • D1
  • R2
  • Vue
  • Python
  • +1
Photo editor
02in progress

Photo editor

A local RAW editor: FastAPI engine, Vue interface, MCP server

Replaces Lightroom in my actual workflow: culling, rating and developing the camera’s ARW files without ever touching the original. The same engine is driven equally by the interface and by an AI agent over MCP.

  • 15MCP tools
  • 19endpoints
  • 0RAWs modified
  • Python
  • FastAPI
  • rawpy
  • SQLite
  • Vue 3
  • +2
Watch store
03in progressprivate repo

Watch store

Crono&Co: Nuxt 4 and Medusa, from migration to deploy

A full e-commerce build: a Nuxt 4 SSR storefront on Vercel over a headless Medusa 2.0 backend on a VPS, with managed Postgres, Redis and its own CI.

  • 420+commits
  • 4deployed tiers
  • SSRVue 3 → Nuxt 4
  • Nuxt 4
  • Vue 3
  • TypeScript
  • Medusa 2.0
  • PostgreSQL
  • +4
Life counter
04liveprivate repo

Life counter

TCG Life Counter: an offline-first PWA for Magic and more

Magic (Standard and Commander) for 2 to 6 players, with a commander damage matrix, undo, Wake Lock and an AMOLED theme. Installable, works with no network.

  • 200+commits
  • 2–6players
  • 3themes
  • Vue 3
  • Vite 7
  • Pinia
  • Workbox
  • SCSS
  • +2
See every project

05 — Contact

Shall we talk about what needs building?

I write from northern Spain and work remotely. If you have a product with 3D in the browser, a front end that has become unmanageable, or just curiosity about one of my projects, the inbox is open.

The form pings me straight away. If you prefer plain email, that arrives too.