04 - Carrera de programador - Tecnología Informal Mientras más hagas, más rápido vas a avanzar en la carrera, pero sigue habiendo un buen gap entre ir a un bootcamp y estar realmente listos para el mercado laboral. Hola, gente. Bienvenidos al podcast Tecnología Informal. Este es un espacio donde vamos a hablar de startups, el trabajo, la inversión, economía y productos relacionados a este tipo de empresa. Mi nombre es Gabriel Benmergui, soy programador y trabajo como ingeniero de software desde hace más de diez años. Actualmente, estoy como Front-end engineer en OpenSea desde Menlo Park, California. En el episodio de hoy, vamos a hablar de cómo hacer una carrera en tecnología, cómo se empieza, cómo se avanza, cuáles son los beneficios y perjuicios de varias verticales y especializaciones del área. El principio de toda carrera es con la educación. La mayoría de los argentinos empiezan a educarse en tecnología yendo a la universidad. Casi todos abandonan. En mi época de estudiar ciencias de la computación en la UBA, se graduaban menos de diez personas por año, con una duración promedio de carrera de nueve años. Era y sigue siendo un camino muy lento para educarse, pero solía ser muy seguro para conseguir trabajo. Otro camino son los bootcamps, que existieron siempre. Yo mismo empecé con un bootcamp de IBM llamado Mega Training que duraba un mes. Estos son programas acelerados donde se codea o se trabaja ocho o seis horas por día por meses, y luego te ayudan a conseguir trabajo. A veces estos programas los hacen las empresas y a veces son startups como Henry o BloomTech, que directamente te dan toda la educación gratuita y te cobran solo en caso de que consigas un trabajo. Yo estoy muy a favor de los bootcamp. Pero sigue habiendo un buen gap entre ir a un bootcamp y estar realmente listos para el mercado laboral. Por último, está la gente que aprende sola, sea porque le interesa o tiene pasión por la tecnología o porque quieren crear un producto o un servicio y necesitan aprender de tecnología para construirlo. Este camino está cada vez más accesible, con la cantidad de cursos gratuitos o baratos y realmente accesibles para poder aprender a programar. También crear tu propio producto y venderlo en el mercado es más fácil que nunca, y nada sería mejor que tener que lidiar con todos los problemas de crear algo desde cero y ponerlo en el mercado. Eso sí, casi siempre tu producto va a fracasar. Es muy raro no tener experiencia técnica, no tener experiencia de producto, que puedas crear algo desde cero, y que tenga éxito y sea competitivo en el mercado. Pero aún si tu producto fracasa, vas a terminar aprendiendo de la manera más rápida y efectiva todas las partes de cómo crear un producto de tecnología. Luego de que uno tiene un poco de educación, sea formal o informal o autodidacta, el primer paso es seguir la carrera tradicional, y lo más normal y exitoso es seguir una empresa grande. Empresas como MercadoLibre o Globant contratan a miles, decenas de miles de programadores en Argentina y tienen que crear estructuras con managers, con educación, con planes de carrera para toda esta gente. La realidad es que se aprende mucho, y los problemas técnicos que tienen son del mundo moderno. Tienen gran escala, usan las últimas tecnologías, tienen plata para pagar todos los servidores y todos los servicios que usan. Es una manera muy estándar y con muchas chances de éxito para aprender en un primer trabajo. Otra oportunidad sería ir a trabajar en una startup chica. En Estados Unidos se le dice startup a una startup que es construir el avión mientras estás volando. No hay experiencia que te prepare más rápido para el mundo real que esto. El problema de las startups es que el trabajo es muy intenso, se trabaja muchas horas porque todo se está prendiendo fuego todo el tiempo, y el management es pésimo, es gente sin experiencia, sin estructura, sin carrera. La preocupación de todos los días es la subsistencia del negocio o el crecimiento. Pero tiene la ventaja de que tenés mucha, mucha responsabilidad, y si la empresa crece, tu rol también. Una empresa que pasa de tener veinte empleados a doscientos presenta oportunidades únicas en desarrollo personal y profesional. Como alternativa al primer trabajo, mucha gente empieza a hacer freelancing o consultoría. A veces, la gente con poca experiencia encuentra muy rápido un recoveco en el mercado, con tecnologías específicas u oportunidades puntuales, y se va armando el nicho. En plataformas como Upwork se pueden encontrar pequeños trabajos y uno se va armando la reputación en la plataforma y se puede hacer mucha plata. Lamentablemente, para un primer trabajo es probable terminar en mercados muy malos, con poco crecimiento personal o poca remuneración. Lo más triste para mí es encontrar gente, programadores, trabajando hace cinco o seis años en PHP, WordPress, y ganando menos de mil dólares por mes. Pero luego de unos años de hacer consultorías, de trabajar en startups, uno va pasando de ese rol de junior a senior. En Argentina la distinción es casi exclusivamente técnica. ¿Qué es lo que podés hacer con las tecnologías que dominás? En Estados Unidos el modelo es un poquito más complejo, se trata de hacer un impacto en la organización, así se mide la diferencia del seniority. La expectativa de un senior no es solo que pueda resolver problemas técnicos, sino que los pueda encontrar y que nadie más los pueda encontrar. Poder transformar un problema abstracto en una propuesta concreta y cambiar lo que la empresa está haciendo es una expectativa normal para una persona con buen seniority. El rol no es solo escribir código, sino que hay que entender cómo construir y cómo comunicarse en una organización. Por suerte, en la industria, en la última década se simplificó mucho el tema de la laboral, se divide en dos partes, lo que se dice IC o Individual Contributor y los managers. Los IC son roles principalmente técnicos. Pueden tener un rol de liderazgo en términos técnicos, elegir qué tecnologías hacer o hasta crear tecnologías que usa la empresa. En el camino del IC uno tiene junior, senior y después vienen los roles como staff o principal. Los principal engineers suelen ser los titanes de la industria, creadores de idiomas, creadores de tecnología o proyectos como puede ser Gmail o Python, la mayoría de los programadores, cerca del noventa por ciento, no llegan al rol de staff. Y no hay un camino directo para llegar a este rol, requiere poder hacer un impacto organizacional muy fuerte, liderar proyectos con cuarenta o cincuenta programadores sin ser el manager, sin tener la capacidad de despedir a nadie. No es un rol de autoridad, es un rol de influencia. Distintos para los managers. Los managers son un rol bastante repudiado por los programadores. En general, son el destino de todas las quejas y las broncas y las desilusiones de todos los trabajadores. Se dice que la gente no abandona las empresas, sino que abandona sus managers. De hecho, en una época Google inventó el proyecto oxígeno, donde eliminó a todos los manager de la empresa, los despidió a todos y quería demostrar que finalmente los programadores se podían manejar solos. Duró tres meses ese experimento, fue un fracaso total. Terminaron haciendo exactamente lo contrario, pusieron muchos managers y empezaron a evaluar cómo es ser exitoso en un manager, cómo funcionan. Ser manager es casi todo lo contrario de decirle a la gente qué hacer, sino sobre coachear a que la gente pueda trabajar mejor. El éxito del manager se mide no solo por el impacto de la gente que trabaja debajo de su organización, sino que también trabajan otras ramas de la empresa por su impacto. Es un rol con mucha influencia y con mucha palanca, porque tiene mucha gente a cargo y todas las decisiones se magnifican. Por eso este rol suele ser el que más paga y que más crecimiento vertical tiene, pero a su vez es realmente manejar gente. Y no se puede saltar de una posición tan frecuentemente como un IC, ya que las relaciones humanas que uno arma como manager se miden, su éxito se miden mucho tiempo y uno las quiere preservar. Un buen manager ayuda a la gente a crecer profesionalmente y eso toma tiempo, años. Y exponerlos a esos desafíos y oportunidades requiere entender a la empresa, a los candidatos, a los reports, a un montón de gente. Un pequeño tip acá. Cuando vos busques una empresa, pensá realmente en la persona que te entrevista y si va a ser tu manager. La calidad del manager es el indicador número uno de qué tan bien o qué tan exitoso va a ser tu trabajo. Y además, en esta industria, los manager tienen un componente técnico muy importante. En muchas empresas la expectativa es que sigan programando hasta el cincuenta por ciento de su tiempo, y tengan mucho conocimiento técnico y de dominio, y que su liderazgo sea indiscutido. La carrera de manager empieza como de junior manager a senior manager, sigue director y termina en VP, vicepresidente. Con unos años de experiencia, sea siendo manager o un staff engineer o un senior engineer, vuelve el tema de la consultoría. Con unos años se puede realmente hacer mucha más plata de lo que normalmente hace un empleado. Uno tiene contactos, uno tiene reputación y uno va consiguiendo los clientes mucho más fácil. Sin embargo, en el mundo de las startups, los consultores no suelen cobrar en acciones, haciendo que trabajar para startups como consultor no sea tan atractivo. Recordemos de otro episodio que el ochenta por ciento de la remuneración termina siendo las acciones, y si uno no recibe acciones, se está quedando con una parte chica de la torta. En Argentina, sin embargo, es una buena manera de saltar al mercado global. Trabajar en inglés y cobrar en dólares. Yo aprendí startups trabajando así, como consultor para empresas de afuera. Pero la mayoría se queda atrapado en este espacio de consultoría porque paga bien y no termina haciendo el salto a entender producto y a poder elegir empresas que van a tener un crecimiento exponencial. ¿Y qué sigue cuando tiene mucha experiencia? Puede ser consultor, puede ser un senior, un staff, un director de empresa, ¿qué puede? ¿Cómo sigue la carrera de un programador? Y lo normal o lo común vendría a ser hacer tu propia empresa. Hay varios roles que sirven acá. Uno puede ser un CTO, que es parte de un equipo fundador, o puede ser un first engineer, el primer equipo técnico que tiene una startup. Y también uno puede ser un un head, un Head of Engineering, que puede ser un rol donde uno codea y también realiza estas tareas de de management. La experiencia de seis años, siete años, para mí alcanza y sobra para poder tener un rol como estos. Sin embargo, este camino es por lejos el más riesgoso, es donde el salario va a ser el más bajo de todos y se apuesta a todo, a las acciones, al crecimiento vertical de una empresa. Hago una mención especial para el famoso título head of, en nuestro caso head of engineering, pero también existe head of marketing, head of people, head of operations. El rol head of significa algo muy abstracto en la industria y significa que la persona está muy por arriba de un rol de ingeniero, pero no está al nivel de un Vice President o un VP. La expectativa de un Vice President es realmente muy alta, es gente que está acostumbrada a manejar presupuestos de miles de millones de dólares, y una startup que por ahí está facturando cincuenta millones de dólares anuales no justifica tener ese título. Pero para reconocer que el desarrollador o el programador o la persona que tiene ese rol está por arriba de la organización, se le suele dar el rol de head of engineering. Para cerrar un poco el tema de todos estos pasos de la carrera, quiero dar algunos tips. El primero es que en esta industria se puede entrar por la ventana. Si vos aprendiste por tu cuenta, con un bootcamp, fuiste a la universidad, la verdad que no le importa a nadie. Si podés demostrar un poquito de capacidad, podés conseguir trabajo. Es muy importante elegir las oportunidades, porque las oportunidades son tantas, hay que elegir y maximizar el crecimiento de largo plazo, no la remuneración monetaria que tengas ahora. En pocos años, salario siempre se va a adecuar a tu capacidad de trabajo en la industria. Otro tip es elegir bien las oportunidades, y lo más importante es elegir el aprendizaje de largo plazo. Lo peor que te puede pasar no es cobrar poco, sino aprender poco. En pocos años, el mercado siempre va a corregir tu salario a que se adecúe a conocimiento y tu capacidad. Es importante adquirir conocimiento de dominio, es decir, de los negocios o del espacio en el que uno trabaja, no solo lo técnico. Es importante porque si no uno se va a terminar limitando a trabajar a un tipo de empresa que le digiera y les dé todo el trabajo armado para hacerlo. Otro tip es que se crece muy lento en velocidad crucero, es decir, el trabajo de cuarenta horas semanales trabajando para una empresa grande, siguiendo los objetivos que te pone un manager. Mientras más hagas, más rápido vas a avanzar en la carrera. Algunas de las cosas que pueden propulsarte puede ser ser una persona que está siempre que se cae un sitio, participar en lo llamado on call, estar siempre ahí presente para resolver cualquier problema, incluso problemas que no están en tu organización. Todas esas oportunidades te van a hacer crecer más rápido y saltar más rápido a mejores roles. En conclusión, la organización en tecnología es, por suerte, bastante chata y generosa. Es fácil encontrar oportunidades con los skills correctos, y la carrera es fácil de seguir hasta los seis años de experiencia. Para superarse luego, hay que aprender a liderar, a realizar impactos en una organización, en la gente, o a tener toda la responsabilidad de un producto técnico, y para eso no hay una receta fija. Esto fue todo por hoy, y nos vemos para la próxima. Suscribite a Tecnología Informal en Spotify para encontrar todos los episodios y estar al tanto de los nuevos. Encontrame en Twitter con @Conanbatt.