Andreu Playà
EN
Mataró, Spain

Andreu Playà

Software Engineer · PLC & Web

Machine control is my trade and the part I love. The web applications started as side projects and kept growing.

About

Who

Industrial control is my job, and it is the part of the work I actually love. At Multivac I do R&D on new machines for the food packaging industry: structured text on TwinCAT3, stations coordinating more than fifteen synchronized axes, motion that has to hold at 3am on a line that cannot stop. Nine years in, it still has my full attention.

I got here through telecommunications engineering and a master's in Automatic Control and Robotics, with four years of pharma packaging in between — FDA-compliant systems and a sterile line built around two 6-axis robots.

The software on this page is what grew beside that. It started as a favour and did not stay one: a booking spreadsheet that needed replacing became an application, the application needed somewhere to run, and running it taught me the rest — Vue and Node, containers, delivery pipelines, the discipline of shipping something other people depend on. Side projects that outgrew the label, and a set of skills I picked up because they asked for them. The instinct underneath is the one from the machines: it has to keep working when nobody is watching.

Skills

What I do

Machine control

Since 2017

Nine years of IEC 61131-3, mostly structured text. Motion applications with cams and multi-axis synchronization, written with an object-oriented structure that survives the next machine.

IEC 61131-3TwinCAT3KEBACodeSysMotion camsC

Robotics & validated lines

MSc

Master's in Automatic Control and Robotics, put to work on a sterile pharma line built around two Comau Racer 5 robots — delivered under GAMP's V-Model, with an FDA-compliant recipe and reporting system.

Comau Racer 5GAMP V-ModelFDA complianceHMISSRS

Full-stack web

Self-taught

Picked up on the side projects, one requirement at a time: authentication with JWT and two-step verification, immutable audit trails, SQLite persistence, and a test suite that has to be green before anything ships.

Node.jsHonoVue 3ViteSQLiteSCSSPHP

Infrastructure & delivery

By necessity

Learned by necessity: what I build, I also have to keep running. Containerized services, infrastructure declared as code, and CI pipelines that test, build, publish, redeploy and wait for the health check before calling it done.

DockerComposeCI/CDLinux serversPython

Experience

Where
Jun 2021 — Present

Software Engineer, PLC Programming

Multivac Group

R&D on new machines for the food packaging industry. Built and integrated complete new stations coordinating more than fifteen synchronized axes, kept released machine code alive through new features and legacy drive applications, and made customization possible on a serialized process. Wrote a machine-state visualizer in PyGame and PyAds that field test engineers use on site.

TwinCAT3Structured TextMotion camsMercurialUnit testsJavaCPython
Feb 2017 — Jun 2021

Junior Software Engineer, PLC Programming

SP I-Dositecno

Adapted standard machine code to client design specifications under GAMP's V-Model. Delivered a sterile pharma packaging line built around two Comau Racer 5 6-axis robots, an FDA-compliant HMI recipe and reporting system, and Solid Edge API macros that saved the mechanical team a repetitive step.

KEBAIEC 61131-3VBScriptSQLSSRS.NET

Education

Studied

MSc, Automatic Control and Robotics

2012–2014

UPC — ETSEIB, Barcelona.

Technical Telecommunications Engineering

2007–2011

Electronic Systems. UPC — EPSEM, Manresa.

Advanced JavaScript

2023

PUE Academy (TR-2666 / IFCD89).

TwinCAT3 NC PTP · TwinSAFE

2021

Beckhoff Automation S.A.

Work

Built

Six projects, oldest to newest at the bottom. The recent ones I build and run; the early ones are where the habits came from. Each one keeps a build log — what changed, when, and why it was worth changing.

2026

pms_ixa Live

A property management system for short and long-term rentals: bookings, clients, billing, and sales channels that each know their own commission. Four roles decided at the route, opt-in two-step verification, an immutable audit log, and a pipeline that will not call a release done until the health check answers.

Node.js 20HonoVue 3SQLiteJWT + 2FACI/CD
2026

web_ixa Live

A public site in ten languages — Cyrillic and right-to-left included — on a WordPress block theme written by hand, with no page builder and no build step. It reads availability from the PMS and files enquiries straight into it. Began as a rescue: the site it replaced was a SPA that went blank when its API disappeared.

WordPressPHPCustom themei18nDocker
2026

tas_ixa

Time and attendance from a physical clock device. It parses what the device writes and handles what it cannot — the day somebody forgot to clock out — through corrections that are proposed, approved and reversible, never edits over history. The industrial habit, applied to a web app.

Node.jsHonoVue 3SQLiteDocker
2022

Wave Function Collapse

A map generator in Unity3D built on the Wave Function Collapse algorithm: you give it a handful of tiles and the rules for which may touch which, and it resolves a layout that never breaks them. Constraint propagation, which is the same shape of problem as sequencing a machine — only prettier when it works.

Unity3DC#Procedural
2021

Typing Dojo Playable

A typing game in Unity3D, in the spirit of TypingClub: race the clock and bank as many word points as you can. Built to learn the engine's input and timing loop, and it still runs in a browser.

Unity3DC#WebGL
2012

Sensorless motor control

Closed-loop speed control of a DC motor with no tachometer and no encoder — the motor is its own sensor. During the low phase of the PWM an interrupt reads the back-EMF off the same pin that drives it, and that voltage is the speed feedback.

EmbeddedPWMBack-EMFControl loop

Contact

Get in touch

Automation work, a robotics problem, or something you're building on the web — the inbox is open.

contact@andreuplaya.com