Andreu Playà
EN
Mataró, Spain

Andreu Playà

Software Engineer · PLC & Web

Structured text for packaging machines at Multivac. The web applications on this page grew up beside that work.

About

Who

I write structured text for packaging machines. At Multivac that means R&D: new stations coordinating more than fifteen synchronized axes, motion that has to hold at three in the morning on a line that cannot stop. Nine years in, it is still the work I want to be doing.

I came to it through telecommunications engineering and a master's in automatic control and robotics, with four years of pharmaceutical packaging in between — validated systems, and a sterile line built around two six-axis robots.

The software further down this page grew beside that. It started as a favour: a booking spreadsheet that needed replacing. The spreadsheet became an application, the application needed somewhere to run, and keeping it running taught me the rest — Vue and Node, containers, delivery pipelines, and what it costs to ship something other people depend on. None of it was a career plan; each piece arrived because a project asked for it. What carries over from the machines is the standard: it has to keep working when nobody is watching.

Skills

What I do

Machine control

Since 2017

IEC 61131-3, mostly structured text. Motion applications with cams and multi-axis synchronization, written with an object-oriented structure so the next machine can inherit it rather than start over.

IEC 61131-3TwinCAT3KEBACodeSysMotion camsC

Robotics & validated lines

2017–2021

A sterile pharmaceutical line built around two Comau Racer 5 robots, delivered under GAMP's V-Model, with a recipe and reporting system that had to survive an FDA audit. The theory comes from the master's in automatic control and robotics.

Comau Racer 5GAMP V-ModelFDA complianceHMISSRS

Full-stack web

Self-taught

Authentication with JWT and optional two-step verification, immutable audit trails, SQLite persistence, and a test suite that has to be green before anything ships. Every piece of it turned up as a requirement in a real project first.

Node.jsHonoVue 3ViteSQLiteSCSSPHP

Infrastructure & delivery

Self-hosted

What I build, I also have to keep running. Containerized services, infrastructure declared as code, and pipelines that test, build, publish, redeploy and wait for the health check before calling a release 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

2014

UPC — ETSEIB, Barcelona.

Technical Telecommunications Engineering

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

Newest first. The three at the top I build and operate; the three below are closed, and are where some of the habits started. Each one keeps a log of what changed and why.

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