Estoy automatizando la web desde antes de que la mayoría supiera qué era un headless browser.
Si llegaste a esta página, y no sos un bot, gracias por tomarte el tiempo para leer acerca de mi! Y si sos un bot: hola. Probablemente construí a alguno de tus primos.
Mi nombre es Darío Kondratiuk, y soy developer de Buenos Aires, Argentina. Pasé 25 años enseñándole a las computadoras a usar el software que escribimos. Me llevó casi todos esos años darme cuenta de que ese era mi trabajo.
Hace mucho tiempo atrás
Tal vez no sea capaz de decir que programé mi Commodore 64 en los 80s, pero sí puedo decir que escribí mis primeras líneas de C# allá en el año 2001, cuando se lanzó el .NET Framework 1.0 Beta 2.
Trabajé en proyectos empresariales por más de 10 años. Fueron años divertidos. En 2004 comencé a probar ORMs, Entity Framework no era ni siquiera un alpha. Empecé usando OJB.NET, que luego se convirtió en DomainObjects.NET, que era un port de OJB. Luego de varios meses usándolo me uní al equipo de mantainers. Mis principales contribuciones fueron el soporte a Primary Keys compuestas y el provider para Oracle. También utilicé los productos de Telerik en sus primeros días. Fue muy divertido jugar con paneles Ajax algunos años antes que ASP.NET AJAX saliese a la luz.
La Web pública
Unirme a MultiTracks.com en 2015 fue un cambio rotundo en mi vida. Empecé a trabajar remoto, que no es un cambio menor. MultiTracks.com me ayudó a introducirme en lo que yo llamo la web pública. Tuve que aprender a lidiar con alta concurrencia, hackers, caching, time zones, etc. Internacionalización, múltiples monedas, múltiples tipos de pago. Las cosas se rompen de otra manera cuando todo el mundo es tu usuario.
La costumbre de portear
En algún momento me quedó una costumbre: aparece algo bueno en JavaScript, y no puedo dormir hasta que .NET también lo tenga.
Así nació Puppeteer-Sharp, un port a C# del Puppeteer de Google. Lo empecé como un side project, para ver si era siquiera posible.
- 36M+ descargas en NuGet
- 3.9k+ estrellas en GitHub
- Todavía sacando versiones, 8 años después
Después el 2020 llegó con nuevos desafíos: llegó la hora de Playwright. Así que lo hice de nuevo con Playwright-Sharp. Ese tuvo un final mejor del que esperaba: se fue a Microsoft y se convirtió en la versión oficial .NET de Playwright.
Ya sé lo que estás pensando: ¿regalaste el proyecto?
No regalé el proyecto. Le conseguí una mejor casa.
En el medio de todo eso escribí un libro, UI Testing with Puppeteer, y Microsoft me nombró MVP siete años seguidos. Todavía no me lo termino de creer.
Nada de esto lo hice solo. Puppeteer-Sharp tiene cientos de contribuidores, y varios me enseñaron cosas sobre mi propio proyecto. No es mi proyecto. Es nuestro.
Enseñarle a las computadoras a testear
Hoy construyo agentes de IA que testean software en mabl. Agentes que abren un browser de verdad, exploran una app como lo haría una persona, escriben el test, lo corren, y lo arreglan cuando se rompe. También construí la integración MCP de mabl, para que agentes como Claude puedan crear, correr y debuggear tests en la plataforma sin una persona en el medio.
Y acá está lo que me di cuenta hace poco. En 2004 escribí código para que los developers no tuvieran que escribir SQL a mano. En 2017 escribí código para que los developers .NET no tuvieran que escribir JavaScript para manejar un browser. Hoy construyo agentes para que nadie tenga que escribir el mismo test de login por cuadragésima vez.
Resulta que toda mi carrera fue el mismo trabajo: sacar del medio la parte aburrida entre lo que vos querés y lo que la máquina hace. Los agentes son simplemente la próxima parte aburrida para sacar del medio.
No lo hagamos más largo
Amo el open source. Me gusta contribuir en proyectos open source y también ayudar para que cada vez más gente pueda ser parte de esto.
Para finalizar, si nos encontramos en un futuro, lo único que tenes que saber es que me gustan las IPAs.
No dejes de codear!