Nicolás D’Ippolito es Licenciado y Doctor en Ciencias de la Computación (UBA). Cuenta con más de veinte años de experiencia en proyectos de ingeniería de software. Desde febrero de 2024 es Vicepresidente de Inteligencia Artificial en Veritran. Entre 2019 y 2023 fue Director de Ingeniería de Software en ASAPP y entre 2015 y 2019 se desempeñó como Chief Scientist de Epidata. Fue Investigador de CONICET en el Laboratorio de Fundamentos y Herramientas para la Ingeniería de Software y Profesor de Exactas-UBA. Realizó su doctorado en el Imperial College London sobre Síntesis de controladores basados en eventos para ingeniería de software.

En diálogo con Conectados, Nicolás nos cuenta sobre el valor de estudiar Computación en Exactas, su participación como investigador y divulgador que demostró las falencias del voto electrónico y su actual rol como VP de IA en la empresa de tecnología Veritran.

¿Por qué decidiste estudiar Computación?

Mis intereses estaban entre matemática y computación, pero decidí estudiar computación porque me parecía que tenía toda una componente de programación, que me gustaba mucho y algo aplicado que me parecía más divertido y traspolable al mundo real. En realidad empecé el CBC en la carrera de Ingeniería en Informática, ya que mi familia venía con esa percepción instalada, esa idea de que ser ingeniero era más importante que ser licenciado. Hasta que conocí Exactas y entendí que era el lugar que me hacía sentir más cómodo, por la impronta de la carrera y el ambiente social. En mi entorno familiar cercano no había universitarios, soy la primera generación universitaria de la familia y mi escuela fue industrial electrónica, por lo que en la secundaria estaba familiarizado con las ciencias exactas y participé en olimpiadas de matemática.

¿Qué recordás de tu paso como estudiante en Exactas?

Lo recuerdo con mucho cariño, fue una cosa muy familiar en cuanto a la sensación de pertenencia al lugar, pasar mucho tiempo, generar muchos vínculos, conocer gente de distintas carreras y además un enriquecimiento no sólo en lo técnico sino en lo humano y en lo político, fue una apertura mental absoluta. Siempre digo que Exactas me cambió la vida en muchas de las dimensiones que hacen a mi persona y me dio un pensamiento crítico que no tenía antes. Hoy se transformó en una parte fundacional de mi vida.

Cuando hoy me preguntan por qué es distinto estudiar Ciencias de la Computación que estudiar Ingeniería, si solo veo los títulos de las materias no parecen tan distintos. Pero hay algo de la carrera en el día a día del fundamento de las cosas, de preguntarse y entender cómo funcionan las cosas, de entender sobre las tecnologías que usamos en nuestra vida cotidiana. El fundamento no es solo lo teórico de la computación, se nota la diferencia por el tipo de profesional que se forma y por la capacidad para abordar o resolver cualquier tipo de problema.

¿Qué profesores te parece que dejaron una huella en tu formación y cómo viviste la cursada?

Tuve un profesor que me marcó mucho que justo no es del DC, pero es Adrián Paenza, que es único por la capacidad de transmitirte y entusiasmarte con la matemática. Lo tuve a Nicolás Kicillof, una persona con un estilo muy particular que me resultó muy interesante. Y por supuesto Víctor Braberman, que es riguroso pero con un nivel de conocimiento e inteligencia que deslumbra.

La verdad que a mí me costó mucho cursar porque trabajaba ocho horas por día, tenía que ayudar a mi familia y aportar ingresos. Estuve trabajando casi toda la carrera, entonces no fui un alumno que llegaba tranquilo y disfrutaba de la cursada. Como alumno no pasaba muchas horas en la facultad, pero eso cambió después de recibirme y al comenzar el doctorado. Realmente disfruté mucho más siendo investigador que estudiante.

Finalmente te volcaste al campo de la ingeniería de software.

Como había trabajado en la industria de software a lo largo de la carrera, conocía de primera mano cuáles eran las dificultades de hacer software real. El escenario de investigación en ingeniería de software se me hacía muy natural y además tuve la oportunidad de trabajar con una de las personas más brillantes de Argentina que es Sebastián Uchitel. Hoy es un gran amigo pero en su momento era un ídolo absoluto (de hecho cuando estuve haciendo el doctorado afuera o viajando por todo el mundo, había gente que me preguntaba cómo era Sebastián en persona). Y él está en la élite mundial de la ingeniería de software, es como tener a Messi sentado al lado, solo que va a la facultad en bicicleta y zapatillas deportivas. Y son pocos los investigadores en Computación en Argentina con ese nivel de importancia en el mundo. Entonces hice una muy buena carrera académica, como investigador, en parte porque tuve a gente que me formó como Uchitel. 

Hace por lo menos siete años atrás, comenzó una discusión en el ámbito académico respecto a la utilización del voto electrónico y los problemas de implementarlo. En tu caso, fuiste un investigador que tuvo un rol protagónico, tanto por tus presentaciones en el Senado de la Nación como por todo el material de divulgación que generaste. ¿Podrías contarme sobre esa experiencia de tu investigación?

La formación y experiencia que traíamos fue fundamental, porque nos permitió mirar el problema de forma bastante natural, lo estudiamos y muy rápidamente entendimos que el voto electrónico tenía problemas intrínsecamente irresolubles, ya que más allá de que alguna gente probó de hackear el sistema, había dificultades técnicas específicas que hacían que fuera problemática la implementación por parte de la empresa encargada del sistema de boleta electrónica. Lo que nosotros pudimos ver, usando el conocimiento fundacional de computación e ingeniería de software, es que era un problema que no tenía solución principalmente porque cuando necesitábamos hacer un sistema que fuera auditable por la ciudadanía, que mantuviera irrestrictamente el secreto del voto, sabíamos que matemáticamente eso era imposible. Entonces ya con ese conocimiento teórico, se podía plantear que el voto electrónico no era una solución viable, al menos respetando la Constitución Nacional. Eso a nosotros nos hacía muy simple el argumento y la posición contraria a esa innovación tecnológica.

¿Cómo fue explicar eso para gente que a priori no lo entendía?

Fue un desafío grande. En un momento en la charla que dimos en el Senado de la Nación, nosotros creamos un sistema muy simple, donde los senadores votaron, les mostramos los votos que emitió la impresora y ellos no encontraron nada raro en la impresora, mientras que yo en unos dos minutos no sólo adiviné a quién habían votado sino que les mostré qué papel de voto había emitido cada uno. Para que vean lo simple que era, y en realidad solo uno necesitaba saber sumar y restar para poder adivinar esos votos. Es decir, encontramos un montón de estrategias alternativas para mostrarlo y argumentarlo, esas estrategias las pudimos encontrar por dos motivos: el primero era que todos nosotros como investigadores estábamos involucrados en tareas de docencia hace muchos años y el segundo es que, como investigadores, teníamos un entrenamiento en cómo explicar a cualquier persona cosas tan difíciles de una manera más simple para que se entienda.

De hecho una de las estrategias que usamos fue mostrar la presentación como si fuera un truco de magia y tal es así que uno de nuestros jefes nos llamó “prestidigitadores” cuando en realidad había sido un truco de presentación. Durante el proyecto trabajamos con Hernán Melgratti y Matías López-Rosenfeld e hice algunas consultas con Sebastián Uchitel.

Después se armó un informe en CONICET sobre el análisis del voto electrónico, que lo lideró Melgratti y había varios investigadores referentes de todo el país involucrados. Recuerdo algo bastante llamativo, que una mañana ese informe no salía e hice un tweet para que publiquen el informe de CONICET y fue trending topic todo el día en Twitter, hasta que Italia esa tarde no clasificó al Mundial de Fútbol 2018 y eso desplazó el eje de atención. No podía creer el revuelo que se armó. Otro momento fue cuando Cristina Fernández de Kirchner citó unos resúmenes de mi artículo en El Gato y la Caja. Eso hizo que se viralizara y hacerme un poco más conocido por ese tema. Si bien ya pasaron siete años de esto y no trabajo más en la facultad, fue una experiencia muy valiosa para contarle a la sociedad.

Desde principios de este año sos VP de Inteligencia Artificial en Veritran, empresa argentina global que es líder de soluciones digitales para el sector Fintech. Quería preguntarte sobre este nuevo trabajo y los desafíos de la tarea.

Una de las cosas que más me interesó de Veritran es su plataforma. En Veritran creamos soluciones a través de nuestra Enterprise Low-Code Platform. El Low-Code es una modalidad de construcción de aplicaciones que permite crear aplicaciones con muy baja o nula programación y sin requerir construcción de software desde cero. 

Algo que me resulta particularmente interesante es que si bien trabajar con Low-Code puede requerir ciertos conocimientos de programación, uno no necesariamente debe saber programar. Si bien siempre es útil saber programar (en la vida en general) para extender o crear dentro del Low-Code, no es un requisito imprescindible para implementar una aplicación.

Ahora, ¿dónde entra la inteligencia artificial y por qué me convocaron? El uso de Low-Code aumenta enormemente la productividad y la calidad en la construcción de aplicaciones, si a eso le sumamos el uso de IA, se pueden lograr resultados en ambas áreas increíblemente superadores.

La IA se usa para asistir en la generación de esas aplicaciones, para tener mayor calidad y hacerlo de forma más rápida. Como estás al nivel del Low-Code y como el analista programador ve el código, puede validar ese código y garantizar muy rápidamente si lo que generó es válido o no.

Por ejemplo, en Veritran creamos soluciones de negocio a medida reduciendo el time-to-market de meses a semanas. En el caso de la Argentina, trabajamos en el desarrollo de las billeteras virtuales de los dos bancos públicos más grandes del país: BNA+ y Cuenta DNI.

¿Cómo se maneja la seguridad en estas aplicaciones, que involucran pagos, manejo de fondos y poseen información sensible de los usuarios?

Lo interesante es que toda esta parte de seguridad, riesgo, transacciones o manipulación de datos crediticios se hace en el nivel de infraestructura de código, que es lo que programa el equipo de ingeniería. La IA nunca interviene en esa parte. Es el beneficio de usar IA en Low-Code y no en el código real, que se usa en la capa más alta de generación de aplicaciones pero no de infraestructura. Lo cual hace completamente seguros y confiables los procesos.

¿Cómo es la conformación del equipo de IA de Veritran?

El equipo reporta a mí y tenemos perfiles de Data Scientist, Machine Learning Engineer y también Ingenieros de Software que nos ayudan con toda la parte de IA. El grupo se está formando: actualmente estamos buscando gente, entrevistando gente que quiera trabajar con nosotros, para puestos de Research Scientist, y Machine Learning Engineer. El desafío principal es conformar, consolidar y hacer crecer el equipo.

Por último, ¿podrías destacar algunos de los proyectos que están desarrollando en este momento y cómo se complementa la IA con la ingeniería de software?

Estamos trabajando en proyectos que tienen que ver con generación automática de tests, de varios tipos de tests con IA y generación automática de aplicaciones con IA para diferentes productos todos a nivel Low-Code.

Creo que hay que usar la IA con cuidado, usar la IA suelta trae claros peligros y complicaciones. Para mí la combinación de inteligencia artificial con ingeniería de software es clave. Hoy hay toda una cuestión de uso responsable de la IA, porque si bien es poderosa no es del todo confiable. Entonces creo que para usar IA de una manera eficiente pero segura hay que necesariamente combinarla con la ingeniería de software, porque es la manera adecuada de abordar los problemas de robustez y confiabilidad que la IA no da naturalmente.

Sobre todo porque hay una estrategia que usa gran parte de la industria que es controlar a la IA usando más IA. Realmente veo cierto dogmatismo en hacer eso (porque en la práctica no apagás el fuego tirando nafta). Desde mi punto de vista esa estrategia no es la correcta. Lo correcto es controlar la IA usando ingeniería de software, eso significa usar la IA con cuidado, que claramente no suele ser el estándar en la industria.