Sobre míAbout me
Desarrollador · e-learning · Moodle · España
Developer · e-learning · Moodle · Spain
Actualizado mayo 2026Updated May 2026
Soy desarrollador especializado en e-learning y tecnología educativa. Construyo software que facilita la formación online: plugins para Moodle, integraciones con sistemas externos y herramientas para entornos LMS.
I'm a developer specialised in e-learning and educational technology. I build software that makes online learning easier: Moodle plugins, integrations with external systems, and tools for LMS environments.
Trabajo con el grupo CEF.-UDIMA desde hace años, desarrollando y manteniendo buena parte de la infraestructura técnica de su plataforma educativa.
I've been working with grupo CEF.-UDIMA for years, developing and maintaining much of the technical infrastructure behind their learning platform.
La tecnología educativa tiene algo que no tiene casi ningún otro sector: el impacto es directo y concreto. No estás optimizando un embudo de ventas ni mejorando una tasa de conversión — estás haciendo que alguien pueda estudiar desde casa, compaginar trabajo y formación, o acceder a una universidad que de otra forma no podría permitirse.
Educational technology has something almost no other sector has: the impact is direct and concrete. You're not optimising a sales funnel or improving a conversion rate — you're making it possible for someone to study from home, balance work and education, or access a university they couldn't otherwise afford.
Eso es lo que engancha. Un bug corregido en el plugin significa que una clase de 200 personas puede conectarse sin problemas. Una funcionalidad nueva significa que un profesor puede hacer algo que antes no podía.
That's what hooks you. A bug fixed in the plugin means a class of 200 people can connect without issues. A new feature means a teacher can do something they couldn't before.
Empecé con un Commodore 64 en los 90, escribiendo Basic. No había tutoriales ni Stack Overflow — si querías que algo funcionara, tenías que entender cómo funcionaba.
It started with a Commodore 64 in the 90s, writing Basic. There were no tutorials or Stack Overflow — if you wanted something to work, you had to understand how it worked.
Le siguió un Pentium con Windows 3.1, luego XP, después una temporada larga con Linux donde aprendí más de lo que hubiera querido sobre controladores de red, dependencias rotas y las X — esa época gloriosa en la que conseguir que la tarjeta gráfica funcionara implicaba editar el xorg.conf a mano, reiniciar y rezar para que el servidor X arrancase en lugar de dejarte en una pantalla negra. Y finalmente macOS, donde llevo años. ¿Por qué macOS? Porque en algún momento de la vida uno deja de querer pelear con el sistema operativo y empieza a querer simplemente trabajar.
Then came a Pentium with Windows 3.1, then XP, then a long stretch with Linux where I learned more than I ever wanted to know about network drivers, broken dependencies, and X — that glorious era when getting your graphics card to work meant editing xorg.conf by hand, rebooting, and praying the X server would actually start instead of leaving you staring at a black screen. And finally macOS, where I've been for years. Why macOS? Because at some point in life you stop wanting to fight with the operating system and start wanting to just get things done.
El camino a e-learning fue gradual: PHP primero, luego proyectos web, y en algún momento Moodle se cruzó en el camino. Terminé especializándome en ello de forma natural.
The path to e-learning was gradual: PHP first, then web projects, and at some point Moodle crossed my path. I ended up specialising in it naturally.
Plugin Jitsi Meet para Moodle — integra videoconferencias directamente en la plataforma sin cuentas externas ni instalaciones adicionales. Los profesores crean sesiones como cualquier otra actividad; los alumnos se unen con un clic.
Jitsi Meet Plugin for Moodle — integrates video conferencing directly into the platform with no external accounts or extra installs. Teachers create sessions like any other activity; students join with one click.
Es software libre porque creo en ello. Hay algo completamente absurdo y maravilloso a la vez en saber que más de 3.000 instituciones en todo el mundo usan código que empezó como un proyecto personal. El núcleo siempre será libre — lo que venga encima ya se verá.
It's free software because I believe in it. There's something completely absurd and wonderful about knowing that over 3,000 institutions worldwide run code that started as a personal project. The core will always be free — what comes on top is another story.
Me gusta el software que no molesta. Que hace lo que tiene que hacer, que no requiere explicaciones y en el que el usuario no tiene que pensar.
I like software that gets out of the way. Software that does what it needs to do, that needs no explanation, and that the user doesn't have to think about.
Trabajo principalmente en PHP y JavaScript para el ecosistema Moodle, Swift para iOS, y mucho Bash para automatizar lo que se puede automatizar.
I work mainly in PHP and JavaScript for the Moodle ecosystem, Swift for iOS, and plenty of Bash to automate what can be automated.
Sí, mi lenguaje principal es PHP. Sí, he leído todos los artículos explicando por qué PHP es horrible. Y sí, Moodle lleva más de veinte años formando a millones de personas corriendo en PHP, en producción. El lenguaje correcto no es el más elegante — es el que resuelve el problema. Aunque hay que reconocer que hasta Moodle ha cedido y está metiendo React — así que supongo que nadie escapa del todo.
Yes, my main language is PHP. Yes, I've read every article explaining why PHP is terrible. And yes, Moodle has been educating millions of people running on PHP, in production, for over twenty years. The right language isn't the most elegant one — it's the one that solves the problem. Though to be fair, even Moodle has given in and is bringing in React — so I guess nobody escapes entirely.
Al final te pasas la mayor parte de tu vida en el trabajo. Eso o lo conviertes en algo que merece la pena vivir, o estás perdiendo el tiempo de una forma bastante cara. Yo elijo lo primero: siempre con alegría, con un punto de locura, sin tomarse demasiado en serio las cosas que no lo merecen.
You end up spending most of your life at work. Either you turn it into something worth living, or you're wasting your time in a pretty expensive way. I choose the first: always with a smile, a touch of madness, and without taking too seriously the things that don't deserve it.
No creo que el trabajo y pasárselo bien sean opuestos. De hecho, las mejores cosas que he hecho las he hecho riéndome mientras las hacía. Y si en algún momento pierdes la alegría — de verdad, no el mal día puntual — mejor que te replantees el cambio. Probablemente no estés en el sitio adecuado.
I don't think work and having a good time are opposites. In fact, the best things I've done, I've done while laughing as I did them. And if at some point you lose that joy — genuinely, not just a bad day — you'd better start thinking about a change. You're probably not in the right place.
Me subí al carro de la IA sin muchos miramientos. No por hype — sino porque es como tener un ejército de juniors viviendo en tu terminal: rápidos, disponibles a las 3 de la mañana, y siempre con ganas de seguir. La clave, como con cualquier junior, es saber qué pedirles y saber revisar lo que te entregan.
I jumped on the AI bandwagon without much hesitation. Not because of hype — but because it's like having an army of juniors living in your terminal: fast, available at 3am, and always eager to keep going. The key, as with any junior, is knowing what to ask for and knowing how to review what they give you.
Creo en lanzarse. En empezar antes de tener todo claro, en romper cosas para entender cómo funcionan, en que el mejor tutorial es un proyecto real que todavía no funciona. La parálisis por análisis es el enemigo silencioso de cualquier proyecto.
I believe in jumping in. In starting before everything is clear, in breaking things to understand how they work, in the best tutorial being a real project that doesn't work yet. Analysis paralysis is the silent enemy of any project.
Por curiosidad: 30% escribiendo código real, 30% leyendo logs intentando entender qué hizo el código real, 20% en reuniones pensando en el código que podría estar escribiendo, un rato en el gimnasio que es donde realmente se resuelven los bugs, y el resto preguntarle a la IA lo mismo tres veces con distintas palabras hasta que da la respuesta que quería. Si haces la suma te darás cuenta de que me quedo sin horas en el día — si alguien vende, que me escriba.
Out of curiosity: 30% writing actual code, 30% reading logs trying to understand what the actual code did, 20% in meetings thinking about the code I could be writing, some time at the gym which is where bugs actually get solved, and the rest asking the AI the same thing three times in different ways until it gives me the answer I wanted. If you do the maths you'll notice I run out of hours in the day — if anyone's selling, drop me a line.
Tengo otra vida paralela: noches en Madrid organizando fiestas y llevando sesiones en clubs. Música electrónica, house, la cabina, el sonido a las 4 de la mañana. Ese mundo enseña cosas que ningún curso enseña — leer una sala, improvisar cuando algo falla en directo, y que el detalle que nadie nota es el que hace que todo funcione.
I have a parallel life: nights in Madrid organising parties and playing sessions in clubs. Electronic music, house, the booth, the sound at 4 in the morning. That world teaches things no course can — reading a room, improvising when something fails live, and that the detail nobody notices is the one that makes everything work.
No programo sin música en los oídos. Cada proyecto tiene su estilo: los bugs difíciles piden algo profundo y repetitivo que deja la mente libre para pensar, el código nuevo que fluye va con algo más enérgico, y cuando la producción se cae a las 2 de la mañana hay un playlist específico para eso también. Si alguna vez me ves programar, es posible que también me veas echando unos bailes en la silla.
I can't code without music in my ears. Every project has its style: hard bugs need something deep and repetitive that frees the mind to think, code that's flowing goes with something more energetic, and when production goes down at 2am there's a specific playlist for that too. If you ever see me coding, there's a good chance you'll also see me throwing some moves in the chair.
Fuera del ecosistema Moodle, estoy desarrollando LiftCoach, una app de registro de entrenamientos para iOS. El origen es tan viejo como el oficio: necesitaba algo concreto, no encontré exactamente lo que quería, y decidí hacerlo yo. También fue una excusa para aprender SwiftUI en serio.
Outside the Moodle ecosystem, I'm building LiftCoach, a workout tracking app for iOS. The origin is as old as the craft: I needed something specific, couldn't find exactly what I wanted, and decided to build it myself. It was also an excuse to properly learn SwiftUI.
Hay algo sano en tener un proyecto que no tiene nada que ver con tu trabajo principal. Te obliga a ser principiante de nuevo, y eso siempre enseña algo.
There's something healthy about having a project that has nothing to do with your main work. It forces you to be a beginner again, and that always teaches you something.
Si tienes un proyecto relacionado con Moodle o e-learning, o simplemente quieres hablar de tecnología — cualquier cosa — escríbeme.
If you have a project related to Moodle or e-learning, or just want to talk tech — anything really — get in touch.