Entrevista a César Casas: Arquitecto de Software en Despegar e Instructor de Node.JS en EducaciónIT

En el mes de Septiembre entrevistamos a César Casas, quien se desempeña como Arquitecto de Software en la empresa Despegar.com y como Instructor de Node.JS y MongoDB en EducaciónIT. Lee la entrevista completa ingresando aquí.

 

 

 

 

¿Cómo comenzaste tu carrera profesional en el mundo de la tecnología y por qué decidiste especializarte en Node.JS?

Comencé a los 13 años, en Córdoba, programando en C++, y a los pocos meses logré vender un sistema para registrar donaciones en una iglesia.

A los 18 empecé a trabajar en una empresa de telecomunicaciones, y me dedicaba a realizar cableados estructurados, instalación de radioenlaces, etc.

Entrando en los 20 años me mudé a Buenos Aires e inicié mi carrera oficialmente como desarrollador web. Mis inicios fueron con PHP y JavaScript, pasé por varias empresas de todo tipo, hasta que entré como CTO en una empresa llamada Nicestream en el 2009.

En Nicestream logré implementar un laboratorio de tecnología en el cual investigamos varios avances que estaban verdes en ese momento, hasta que un día apareció Node.js.

Desde el día del lanzamiento de Node.js decidí no tocar otro lenguaje de programación que no sea JavaScript. Ese día entendí que JavaScript y el ecosistema que nacía era el futuro de los próximos 10 años como mínimo.

 

Para quienes no conocen Node.JS, ¿en qué consiste esta tecnología y qué alcance tiene?

Básicamente es la posibilidad de usar JavaScript desde el lado del servidor, es decir, es una alternativa a Java, PHP, RoR o .NET.

Node.js está basado en el motor V8 de Google (el mismo que usa Google Chrome, por ejemplo), es rápido de instalar y utilizar. Cuenta con una documentación muy robusta, una comunidad impresionante (básicamente toda la comunidad JavaScript), y más de 333.000 módulos en NPM (con más de 5.234.000.000 descargas al mes).

Particularmente no me gusta mucho comparar Node.js con las demás tecnologías (antes lo hacía muy seguido, pero es una discusión interminable), por lo que solamente opino sobre las ventajas de Node.js (de JavaScript en general).

Un Full-Stack en un ecosistema JavaScript es capaz de trabajar en el Backend, Frontend, Cache, base de datos y soluciones DevOp usando únicamente el lenguaje JavaScript.

Los tiempos de desarrollo en Node.js son en algunos casos casi el 10% de la mayoría de lenguajes populares para desarrollar backend, por lo que con un equipo de 3 o 4 developers podemos resolver grandes aplicaciones.

Actualmente Node.js es utilizada e impulsada por empresas como IBM, Google, Linkedin, Yahoo, AWS, PayPal, Netflix, Uber, etc.

 

Como Arquitecto de Software en Despegar, ¿con qué obstáculos te encontrás diariamente en tu puesto de trabajo?

A nivel técnico muy poco la verdad, ya que el producto que manejamos en mi equipo está bastante estable y no representa mayores desafíos en estos momento.

Por otro lado, si tenemos un obstáculo constante, y es el de demostrar que Node.js está a la altura de soluciones desarrollada con Java o Scala.

Constantemente genera desconfianza porque los programadores más “reservados” de Despegar comparan ambas tecnologías (Node.js con Java o Scala), cuando en mi opinión son simplemente dos tecnologías distintas.

 

¿Qué tipo de proyectos te ha tocado llevar a cabo en la compañía y qué desafíos implicaron?

Hemos desarrollado varios proyectos, todos con Node.js, desde buscadores de vuelos (que no son Despegar.com justamente), hasta un CMS para ofrecer marca blanca a hoteles (http://www.reservalia.com/).

El principal desafío que enfrentamos fue crear una solución que nos permita desarrollar productos en forma rápida, sobre una misma instancia, y que a la vez sea estable y escalable. Esto nos llevó a desarrollar SISS, un servidor de aplicaciones escrito en Node.js (basado en Express).

Recuerdo que a SISS lo desarrollamos en apenas 2 meses, y en paralelo desarrollamos dos buscadores de vuelos y uno de hoteles (basados en SISS), todo esto con un equipo de 5 devs (para backend, frontend y DevOp).

 

Además de Node.JS, ¿cuáles otras tecnologías se utilizan para los desarrollos de la empresa?

La empresa es una de las más grandes del país y la región, por lo que se usa de todo. Como lo mencioné anteriormente, Java y Scala son el fuerte.

En mi equipo particularmente usamos Node.js, Angular, React, MongoDB, Redis, AWS (S3, EC2, Route53, etc) y varios módulos. Todo lo que desarrollamos es bajo el ecosistema Node.js/JavaScript.

 

¿Cuál es tu visión sobre el mercado tecnológico argentino y cómo crees que evolucionará en los próximos años?

Desde hace 12 años que la Argentina no para de crecer como un gran proveedor de software a nivel mundial (en especial software web), tendencia que no se detiene y se proyecta de acá a los próximos 10 años.

Hoy tenemos una situación muy particular en materia de demanda, y es que somos competitivos en el mundo y la calidad de desarrolladores que ofrecemos es excelente.

En pocas palabras, para una startup en USA el costo de un desarrollador de 6 o más años de experiencia en tecnologías avanzadas y modernas (Node.js, React, Angular, etc.) le cuesta en promedio 5.000 dólares al mes (contra los 12.000 dólares el promedio que costaría en ciudades como NYC), por lo que lo buscan en Argentina.

Obviamente esto trae un problema, el aumento de la demanda de desarrolladores en la Argentina. Sumado a lo anteriormente mencionado, está el problema de las carreras universitarias orientadas a sistemas, las cuales no están formando profesionales que cumplan con todos los skills técnicos que demandan las empresas de tecnología.

Para resumir, creo que el mercado del software internacional está buscando alternativas de abaratar costos, pero no pueden sacrificar calidad, y la Argentina es una gran opción. Sin embargo, hay que trabajar en modelos educativos que nos permitan satisfacer la demanda local e internacional.

Hoy la alternativa ideal es hacer carreras no universitarias, de 1 o 2 años, como las propuestas por EducaciónIT a nivel JavaScript. En 1 año un joven se forma profesionalmente y está listo para dar sus primeros pasos en el mercado, teniendo la posibilidad de articular esos conocimientos con una carrera universitaria formal mientras
trabaja.

 

En tu carácter de Instructor, ¿cuáles son las principales enseñanzas y consejos que les transmitís a tus alumnos en base a tu experiencia en este campo?

Creo que el primer consejo que siempre doy a mis alumnos es que no se queden con lo que saben, que se animen a pensar diferente.

Trato de que ellos vean que existen soluciones y alternativas a todo lo que saben previamente, y que animarse a usar nuevas tecnologías es lo que los mantendrá vivos en el mercado.

Me ha pasado de conocer desarrolladores que hace 10 años que usan Java o .NET, y que no están familiarizados con términos como “PaaS”, “Angular”, “React” o incluso JSON. Estos desarrolladores trabajan hace 10 años en la misma empresa, haciendo lo mismo, sin ver que hay un mundo al alcance del clic. Soy un gran fomentador del cambio de
trabajo cada 3 o 4 años, es un instrumento de evolución profesional.

 

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.