Bienvenidos a este episodio de Top Dev la Entrevista, presentado por Hireline. El día de hoy tenemos a Roberto González Flores, él nos va a contar cómo es trabajar como senior software engineer para empresas en Estados Unidos.
¿Qué tecnologías utiliza un Senior Software Engineer?
Sí, primordialmente es Gradel, que es el sistema de compilación por defecto de Android. Y en lenguajes de programación, yo diría que un 60% Kotlin, un 30% Java y un 10% Python, Javascript, XML o inclusive Shell. En general hacemos un poquito de DevOps, Ingeniería de producto y Arquitectura.
¿Cuál es la diferencia entre ser Senior Software Engineer en Estados Unidos y en México?
Fíjate que fue una parte retadora porque yo recuerdo, y esa es una como transición que yo tuve desde siendo en México un líder de equipo a siendo en Estados Unidos un líder de equipo. En Estados Unidos, al líder técnico se le adjudican muchas responsabilidades técnicas e inclusive también a veces un poquito de administración de tareas, de generar las historias, de hacer demos y todo; más responsabilidades sin la autoridad.
¿Qué bibliografía le recomendarías a alguien que busca ser líder técnico?
El libro Multipliers.
¿Qué dificultad encontraste al ser líder en una empresa mexicana?
Cuando yo estaba en México, era muy difícil encontrar cómo puedes llegar hasta la cima del organigrama, pensando en corporaciones grandes. Normalmente en empresas tradicionales tenías que ser gerente, manager y ya poder subir.
¿Qué modo de leadership te gusta más?
Fíjate que me gusta mucho en el que estoy actualmente. Llegué a ser manager de un equipo muy pequeño, pero realmente ahí yo llegaba las noches a codear, a estar programando. Entonces era insano para mí.
Ahora yo ya sé que que me siento a veces así como que contento de decir “hey, saben qué, estuve trabajando un mes en esto, ayudando a todas estas personas, pero ahora ya puedo liberar esto y ustedes se van a beneficiar”.
¿Cuántos colaboradores suelen conformar los equipos de desarrollo?
Depende mucho de la empresa, voy a decir de Amazon porque es público, ellos hablan mucho del equipo de dos pizzas. Y es como un estándar tanto en esas empresas como en empresas que he entrevistado. Estamos hablando que puede ser de un rango de siete, máximo 10/12 personas.
¿Piden un nivel de inglés alto a un Senior Software Engineer para trabajar en Estados Unidos?
Sí lo piden, pero es bien curioso que yo creo que el problema es más interno.
Una de las cosas por las cuales yo me detuve mucho en dar el brinco y pasar a trabajar en Estados Unidos, a pesar de que yo tenía una oferta en la universidad, es que yo consideraba que mi nivel de inglés no era lo suficiente. ¿Cuál fue mi sorpresa? que llego a Estados Unidos y me encuentro con compañeros que tienen un nivel bajo.
Es complicado, sí necesitas un nivel de inglés para ir avanzando en tu carrera, pero no necesitas un gran nivel de inglés para empezar a aplicar, con que sepas hablar un inglés técnico. Ya si quieres hablar fluido, es diferente.
¿Cómo fue tu primera experiencia como Developer?
Sí, fue curiosa y de hecho, por eso yo me metí mucha a mentoría y ayudar a recién egresados a dar la transición porque yo batallé mucho en el sentido de que tenía que pagar mi universidad y tenía que pagar mi sustento. Entonces eso significaba que debía trabajar.
Y pues yo trabajaba de trabajos típicos ahí fáciles en Latinoamérica, fácil acceso. Me quedaban casi tres años y medio para terminar la carrera y empecé a tocar puertas y me acuerdo que mi primer experiencia de entrevistas hasta se burlaron de mi currículum.
Entonces me vine con unos amigos, hicimos una empresa que no estaba tan bien fundamentada financieramente y por eso a los pocos meses nos disolvimos. Eso me dejó lecciones en cuanto a poder programar para generar dinero y la segunda, habilidades técnicas y encontré un nicho que sí me gustaba mucho, que era enfocarme en trabajos con clientes norteamericanos.
¿Cómo fue tu primera experiencia como developer en Estados Unidos?
Mi primera experiencia fue en Hermosillo y ahí fue donde yo me di cuenta que ya no necesitaba tanto el nivel de inglés y solamente necesitaba entregar lo que decía. Yo ponía los estimado, nadie más ponía los estimados por mí.
Cuando estaba trabajando con empresas Mexicanas, era sácalo mientras funcione, cuando llegas a una empresa americana, al día ya lo tienes funcionando y dicen no, pero no es suficiente. Sí te exigen excelencia
¿Qué habilidades necesita desarrollar un junior para ser un Senior Software Engineer?
Yo diría que la principal es comunicar, es comunicación en el sentido técnico, comunicar te va forzando a ciertas disciplinas y no solo eso. Después llega un momento en que tienes que pedir más, más equipo.
Tienes que saber comunicar, pero ya no solo en palabras, ya también tienes que decir el impacto, ya sea monetario, ya sea en tiempo de trabajo. Yo creo que esa es la transición clave de un junior a un senior, trabajar solo.
¿Qué recomendación le darías a un desarrollador junior?
Enfocarse al inglés, pero tenerse más confianza. Cuando llegas al mercado laboral, muchas veces llegas con el síndrome del impostor, pero que eso no te limite.
Cuando llegas a Estados Unidos, lo que buscan muchas veces es la diversidad. El nivel que te exigen en Estados Unidos técnico, probablemente sea al mismo nivel que te exigen en Argentina o en Colombia o en algún otro país. Entonces la diferencia, yo creo que va a estar en la calidad que tú te exijas.
Desde un inicio sentar las bases en fundamentos para no tener que estar cinco años después tratando de estudiar los algoritmos. Llegas a necesitar esos algoritmos, optimizaciones, y si las sabes desde un inicio, ya cuando llegas a una entrevista a Meta, a Amazon, a todas esas empresas y para ti ya va a ser algo muy normal.
¿Qué tips son fundamentales para un Software Engineer junior?
- Confiar en ti mismo y usa el síndrome del impostor a tu favor.
- Busquen comunidad y si no la hay, creen una en su localidad, internet, etc.
- Enfóquense en los fundamentos y en las certificaciones.
- Sigan su propio pad, su propia ruta de carrera.
¿Qué recursos les recomendarías a los desarrolladores para que se sigan capacitando?
- Programming Pearls por John Bentley. Es un libro técnico como tal, pero que te lo narran en forma de novela. Te va a ayudar a pensar algorítmicamente y ver las ventajas de cómo resolver esos problemas, las enseñanzas que te deja son muy aplicables al internet moderno.
- The Managers Path, escrito por Camille Fournier. Me agrada porque primero lo escribe una mujer, entonces hay que ser también inclusivos. Ese libro me abrió mucho los ojos para poder manejar las expectativas de mi vicepresidente, de mi director para entender cómo ellos piensan para yo poder comunicarme con ellos.
- The Unicorn Project y el libro de “Accelerate”. Estos son dos libros que te dan métricas, que sientan las bases científicas de cómo cambiar una organización.
Lo que debes considerar para llegar a ser Senior Software Engineer:
A los introvertidos, porque hay gente introvertida, les recomendaría identificar los problemas, los problemas reales. Y si encuentra que puede recomendar algo mejor de lo que ellos están pidiendo, hacer la recomendación.
Identificar el problema porque muchas veces nosotros como ingenieros, como programadores, como técnicos, nos brincamos a dar soluciones luego luego. Y a veces no es el problema realmente el que tienes enfrente.
Para las próximas generaciones…
La brecha generacional es real, se va dando y algo de lo que comentamos aquí, los recursos de los libros, en mi época era mucho de libros. Ahora a veces la gente dice que los libros se van quedando desactualizados.
Entonces mi consejo va a ser más así de en lo que está de moda, utilícenlos. El inglés es muy valioso, pero yo creo que los fundamentos de programación cuando estás en Latinoamérica, debes de invertirle desde el inicio.
¿Quieres dar el siguiente paso en tu carrera profesional?
Entra a hireline.io