Cantabria, Spain

Diego Portilla Tejerí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

9 years, 4 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 1 mo

    Senior Front-End Developer

    Accenture—Remote, 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

    FIELDEAS—Santander, 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

    FIELDEAS—Santander, 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

    Netkia—Torrelavega, 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 Cantabria—Santander, 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
01liveprivate repo

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; and the same build, packaged as an Android app with its own native plugins.

  • 330+commits
  • 21D1 migrations
  • 1origins
  • Cloudflare Workers
  • D1
  • R2
  • Nuxt 4
  • Capacitor
  • +3
Photo editor
02in progressprivate repo

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.

  • 20MCP tools
  • 28endpoints
  • 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.

  • 700+commits
  • 4deployed tiers
  • SSRVue 3 → Nuxt 4
  • Nuxt 4
  • Vue 3
  • TypeScript
  • Medusa 2.0
  • PostgreSQL
  • +4
Trading card game suite
04liveprivate repo

Trading card game suite

TCG Suite: from an offline life counter to live tournaments and leagues

It started as an offline Magic life counter and now runs tournaments and leagues in the cloud, live and up to 2,048 players, with decks, a priced collection and card search. Magic, Riftbound and Lorcana; the game itself still works with no connection.

  • 1000+commits
  • 2048players per tournament
  • 7languages
  • Vue 3
  • Vite 7
  • Pinia
  • Workbox
  • Cloudflare Workers
  • +5
My personal assistant
05in progressprivate repo

My personal assistant

Agentic OS: a voice assistant with Claude as its brain, on Home Assistant

Jarvis answers on the PC and on the phone: Home Assistant handles what it understands and Claude everything else. It files tasks into the speaker’s own list, sets alarms and timers, runs the house and analyses whatever is on my screen.

  • 2listening devices
  • 5Stream Deck keys
  • 4analysis phrases
  • Home Assistant
  • Claude API
  • Python
  • FastAPI
  • Node.js
  • +2
Custom 3D dice
06liveprivate repo

Custom 3D dice

Dicewright: a 3D dice roller with custom faces and real physics

From d2 to d20, with number, text, icon or photo faces, per-set tabletop rules and 32 playmats each with its own physics, sound and lighting. An installable web app with its Google Play build ready, and randomness drawn from a cryptographic generator.

  • 8die types
  • 32playmats
  • 120+unit tests
  • Vue 3
  • Vite
  • three.js
  • cannon-es
  • Blender
  • +3
See every project

05 — Contact

Get in touch

I write from northern Spain and work remotely. If you want to ask me something about one of my projects, or simply say hello, the inbox is open.

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