Career Crush: ¿Cómo es ser ingeniero de software?
por Kelsey Alpaio
Play
Play
00:00
Play
Seek 10 seconds backwards
Seek 10 seconds forward
00:00 / 00:00
Mute
Settings
Picture in picture
Fullscreen
.video-summary-list-container { height: 100%; } .video-summary-list-container .MuiScopedCssBaseline-root { height: 100%; }
Summary & chapters
Read as overview
.chapters-list-module_intro__74vPf { padding: 16px; border-bottom: 1px solid rgba(255, 255, 255, 0.2); } .chapters-list-module_chapter__uKhQh { padding: 0 16px 16px 8px; border-bottom: 1px solid rgba(255, 255, 255, 0.2); .MuiPaper-root .MuiButtonBase-root .MuiAccordionSummary-content { margin-top: 16px; margin-bottom: 0; } .MuiPaper-root .MuiCollapse-root .MuiCollapse-wrapper .MuiAccordionDetails-root { padding-bottom: 0; } } .chapters-list-module_chapter-header__Pu4Xi { width: 100%; margin-right: 8px; } .chapters-list-module_chapter-header-content__JIOjX { flex-grow: 1; padding: 8px; border-radius: 8px; cursor: pointer; } .chapters-list-module_chapter-header-content__JIOjX:hover { background-color: rgba(0, 0, 0, .2); } .chapters-list-module_chapter-header-expand-icon__tLLZ9 { margin-top: 16px; } .chapters-list-module_chapter-header-text__bPoKD { font-size: 11px; font-weight: 400; letter-spacing: 1px; text-transform: uppercase; } .chapters-list-module_chapter-bullet-icon__kCL9n { font-size: 11px; font-weight: 400; letter-spacing: 1px; text-transform: uppercase; } .chapters-list-module_chapter-intro__H-iVR { display: flex; align-items: center; gap: 8px; margin-bottom: 2px; } .chapters-list-module_chapter-description__ziIpd { margin: 0 -16px 0 -8px; } .chapters-list-module_intro-text__Sqgju { } .chapters-list-module_chapter-description__ziIpd, .chapters-list-module_intro-text__Sqgju { font-size: 16px !important; white-space: pre-wrap; }
Me fascina la programación. ¡Está en todas partes! Cada una de las experiencias digitales de las que disfrutamos es el resultado del código.
Pero sinceramente, no sé casi nada sobre cómo funciona o cómo las personas detrás del código —los ingenieros de software— hacen lo que hacen. Para averiguarlo, hablé con Lindsey Redd. Lindsey ha programado para algunas de las mejores empresas de tecnología del mundo: Slack, Lyft y ahora Stripe. Me contó los detalles de su viaje, desde querer ser doctora, estudiar informática en Stanford y prosperar en los niveles más altos de la ingeniería de software. También hablamos de algunos conceptos erróneos sobre los ingenieros de software, lo que es trabajar en un sector predominantemente blanco y masculino y cómo conseguir una entrevista para un trabajo como el suyo.
¿Puede hablarme un poco de lo que implica su trabajo? ¿Cómo es el día a día?
Puede ser diferente según el día. Pero por lo general, empieza por analizar lo que tengo que hacer durante el día. Sé que muchos equipos de software utilizan herramientas de gestión de tareas. Mi equipo usa Jira específicamente como sistema de venta de entradas y tenemos sprints.
Un sprint durará una o dos semanas. En ese tiempo, se supone que tiene que terminar «x, y z». Revisaré esas tareas pendientes y me aseguraré de que voy por buen camino. Analizaré las tareas que tengo que hacer ese día y las haré.
Luego programar, por supuesto. Pero la ingeniería de software es mucho más que la codificación. Su código. Su prueba. Despliega su código. Supervisa su código y se asegura de que todo funciona correctamente. Pero también puede haber muchas reuniones sobre el desarrollo de productos o las nuevas funciones que hay que desarrollar en el equipo y sobre cómo vamos a crear esas funciones. Me reúno mucho con los ingenieros sobre el plan de implementación. También hay mucha programación en pares o trabajar junto con otro codificador para resolver problemas.
¿Siempre supo que quería ser ingeniero de software?
No, en absoluto. Ni siquiera sabía lo que era hasta que estuve en la universidad. Quería ser médico en el instituto o ingeniero biomecánico. Mi padre es médico. Mi madre es ingeniera química. Así que algo con STEM, sabía, iba a ser mi camino. Pero no me inspiró mucho la pista de premedicina ni muchas de mis clases de ingeniería. La verdad es que no podía ver cómo se aplicaría ninguna de esas habilidades o ninguna de las cosas que estaba aprendiendo. Estaba buscando algo diferente en el campo de las STEM que me resultara un poco más interesante y motivador.
Fui a Stanford. Y Stanford es una escuela de informática enorme. Muchos de mis amigos estaban tomando cursos de introducción a la informática. Nunca había codificado. La verdad es que no sabía qué era. Pero todo el mundo se lo estaba pasando muy bien y pareció que lo encontró muy interesante. Así que alrededor de mi segundo año, decidí ir a una clase de informática. Mi mentalidad era que si me gusta esta clase, iré a la siguiente. Y después, si me gusta esa clase, me especializaré en ella. Y eso es básicamente lo que pasó. Fue en ese momento cuando me di cuenta de que esto es lo que quería hacer.
¿Cómo eran esas clases? Cuando empezó a hacerlo, ¿era algo que le daba miedo o lo intimidaba? ¿O era más accesible?
Si no hubiera visto a otros niños ir a las clases, a otras personas que no sabían programar, me habría sentido mucho más intimidado. Pero los cursos de introducción a la informática de Stanford son muy accesibles. Incluso creo que están disponibles públicamente. La verdad es que comienzan por lo básico. No necesita saber programar en absoluto para ir a la clase. Los profesores estuvieron muy bien y le explicaron, desde lo más, muy básico, lo que necesita saber para programar.
Disfruté de las clases porque muchas de ellas son de programación. Y eso es lo que hago ahora mismo en el trabajo. Me gusta esa aplicación directa de las habilidades. Estoy aprendiendo cosas que eventualmente utilizaré en mi carrera.
Al principio son muchos acertijos. Usted codifica un pequeño robot que navega por un laberinto. Es algo sencillo. Creo que mi último proyecto en mi primera clase fue crear un «Facebook» extremadamente básico. Empiezan de forma sencilla y aumentan gradualmente la intensidad.
Cuando estaba en la universidad, hizo una pasantía en Lyft y Slack. ¿Puede hablar un poco sobre cómo consiguió esas pasantías y cómo fue la experiencia para usted?
Tuve un camino muy interesante para mi primera pasantía. Stanford organiza muchas ferias de empleo específicas para estudiantes de informática en las que las empresas de tecnología de Silicon Valley se presentan y reclutan. No tenía ni idea de cómo navegar por esos espacios. No tenía ni idea de cómo conseguir una pasantía en informática.
Conseguí una entrevista para desarrollo web de front-end, cosa que nunca había hecho. Muchos de los cursos de introducción de Stanford se centran en el trabajo de back-end, como los algoritmos y las estructuras de datos. Así que me hacían preguntas sobre el desarrollo web a las que no podía responder. Fue terrible. Estaba muy perdido. No tenía ni idea de cómo iba a conseguir un trabajo para el verano.
Entonces, recordé que algunos de mis amigos estaban solicitando ingreso en una organización llamada Code2040. Code2040 es una organización que ayuda a los estudiantes negros y latinos que estudian informática a entrar en el campo de la tecnología de ingeniería de software. Tienen asociaciones con empresas que contratan pasantes de Code2040. Y es un proceso bastante intenso. Tiene que hacer una entrevista técnica para entrar en el programa Code2040. Tiene que hacer una entrevista de escritura y también una entrevista en vídeo.
Cuando llegue a Code2040, en ese momento podrá empezar a hacer entrevistas con sus empresas asociadas. En ese momento, Lyft era una empresa asociada de Code2040. Hice una entrevista y el proceso de entrevista fue muy duro. Pero Code2040 también le ayuda a gestionar ese proceso. Así que fue un buen programa para mí, como alguien que no tenía ni idea de cómo entrar en la tecnología.
Me entrevisté con Lyft y, al final, recibí una oferta de trabajo. Code2040 es un programa que dura todo el verano. Va a talleres, establece contactos con muchas otras personas que están en el programa, trabaja con otras empresas que también son empresas asociadas. Slack es una empresa asociada con la que trabajé en red durante mi primera pasantía de verano y, luego, pude utilizar esa conexión cuando se trataba de conseguir una pasantía al verano siguiente.
Cuénteme más sobre el proceso de entrevistas. ¿Qué tenía de difícil? ¿Cómo fue ese proceso?
Ahora, después de haber trabajado en Lyft a tiempo completo, sé que su proceso de entrevista es muy diferente. Pero en esa época, era muy similar a la de muchas otras empresas de tecnología, en las que le hacían preguntas de codificación aleatorias que no simulaban realmente lo que es ser un ingeniero de software en el trabajo. No puedo decirle la última vez que, en el trabajo, usé un «algoritmo de búsqueda que prioriza la amplitud». Pero estoy bastante seguro de que fue una de las preguntas de mi entrevista para Lyft. Y tiene que programar en una pizarra blanca, cosa que yo nunca hice. Por lo general, toda su codificación se hace en un ordenador.
La prueba de entrevista simplemente no era muy indicativa de lo que haría en el trabajo. Y la verdad es que tuve que estudiar para ello. Creo que estudiar para entrevistas de ingeniería de software es todo un calvario en sí mismo. Y en ese momento, no lo entendía muy bien, así que no estudié bien. Por suerte, tenía algunas habilidades en mi haber que me sirvieron en la entrevista. Pero lo hizo difícil porque estaba muy confundido acerca de cómo se iba a traducir esto en mi trabajo.
¿Tiene que estudiar para las entrevistas de ingeniero de software? ¿Qué aspecto tiene eso?
El mejor consejo que me dieron fue comprar un libro llamado «Cracking the Coding Interview», que básicamente aborda todos los diferentes tipos de preguntas que utilizan muchas de las grandes empresas de tecnología, como Google, Facebook y Microsoft. Muchas empresas medianas y pequeñas basan sus modelos de entrevistas en las grandes empresas de tecnología.
Se están produciendo muchas innovaciones nuevas en ese espacio, que harán que el proceso no sea un examen para el que tenga que estudiar. Pero lo hace normalmente. Y hay muchos recursos en Internet, como Meetcode. Básicamente tiene que hacer problemas de práctica, como practicar problemas de matemáticas como si estuviera estudiando para un examen, excepto que se trata de preguntas de práctica de programación que ponen a prueba sus conocimientos sobre estructuras de datos y diferentes tipos de algoritmos, todo tipo de cosas que tiene que repasar para hacer las entrevistas.
Conozco a mucha gente que se da varios meses para estudiar para las entrevistas incluso antes de iniciar el proceso en cualquier empresa. En la universidad, definitivamente estudié al menos dos meses antes de la entrevista. En cuanto a las entrevistas a tiempo completo, también empecé a estudiar unos meses antes de empezar a hacer entrevistas.
Básicamente, tiene que empezar a estudiar incluso antes de saber si tiene una entrevista programada.
Sí, y muchas empresas entienden que eso forma parte del proceso. Los reclutadores son muy, según mi experiencia, flexibles a la hora de darle todo el tiempo que quiera para estudiar. Para mi trabajo actual, recuerdo haberle preguntado a mi reclutador si podía disponer de cuatro o cinco semanas para estudiar antes de hacer la entrevista. Y dijeron: «Oh, sí, lo entiendo perfectamente». Pero mucha gente, una vez que decide que va a cambiar de trabajo, sabe que eso significa que es hora de empezar a estudiar.
Cuando responde a estas preguntas, ¿está programando en directo delante del entrevistador?
Sí, en la mayoría de los casos. Lyft hace una entrevista en la que tiene una hora para programar un pequeño proyecto por su cuenta. El entrevistador no tiene que estar allí, así que puede concentrarse. Pero creo que en todas las demás entrevistas en las que he participado, usted programa delante de alguien o empareja la programación con alguien durante la entrevista. Es mucha presión.
Hace un programa de parejas en el trabajo. Así que las entrevistas que incluyen programación en pareja creo que son geniales. Pero programar con alguien viendo y juzgando su desempeño no es típico en el trabajo. Mucho lo hace por su cuenta. Definitivamente es algo a lo que hay que acostumbrarse, porque no es algo a lo que se dedique normalmente cuando estudia informática o trabaja como ingeniero de software.
Cuénteme más sobre la programación en parejas. ¿Es solo programar con otra persona de su equipo?
La programación en parejas es cuando trabaja con alguien de su equipo u otro equipo en un problema en el que necesita ayuda o que están resolviendo juntos. Normalmente hay alguien que es el «conductor» y luego alguien que está en el «asiento del copiloto».
El conductor es el que realmente escribe. Pero están resolviendo problemas juntos. Es una experiencia muy colaborativa, lo cual me gusta. Creo que he aprendido mucho con ese proceso, incluso en las entrevistas. Suele resolver los problemas un poco mejor y más rápido cuando trabaja con alguien de esa manera.
Así que hizo una pasantía en Lyft y luego pudo conseguir un trabajo a tiempo completo allí. ¿Cómo pudo convertir esa pasantía en un puesto a tiempo completo?
Por lo general, si le va bien durante su pasantía, la empresa le hará una oferta a tiempo completo. Así que la gran pregunta es, ¿cómo le va bien durante la pasantía?
Hay muchas piezas en eso. Mi idea errónea al entrar fue que tenía que hacer mi proyecto de manera perfecta y completa, cosa que no hice cuando estaba de prácticas en Lyft. Creo que lo que la gente busca realmente cuando es becario en un equipo es su capacidad de comunicación, tanto verbal como escrita, y su capacidad para resolver problemas y trabajar a su manera en un problema abstracto. Así que aunque no sea capaz de terminar el proyecto, demostrar esas habilidades de comunicación, organización y gestión de proyectos y averiguar cómo implementarlas, eso es mucho de lo que la gente busca cuando es becario.
¿Qué tipo de preguntas hace? ¿Se asegura de hacer preguntas para resolver sus problemas? ¿Qué tan rápido es capaz de crecer y aprender nuevas tecnologías, habilidades e idiomas rápidamente? ¿Qué tipo de energía aporta al equipo? ¿Cómo es trabajar con usted?
Bien, estar del otro lado y haber sido mentor de pasantes, ayuda sin duda cuando el becario está muy entusiasmado y muy curioso. Eso es lo divertido de tener becarios. No solo está ayudando a atraer a más personas a la empresa, sino que quiere asegurarse de que esas personas son positivas y es divertido trabajar con ellas.
Exudar eso durante su pasantía, esa curiosidad, ese sabor y esa pasión por lo que hace, definitivamente ayuda a dejar una impresión positiva y duradera en su equipo. Si lo tiene, además de que es capaz de resolver problemas y hacer las cosas, está bastante preparado para recibir una oferta a tiempo completo al final.
Sé muy poco de lenguajes de programación. ¿Cuántos lenguajes de programación ha aprendido a lo largo de los años? ¿Y cuánto se tarda en aprender un nuevo lenguaje de programación?
En la universidad, aprendimos C y Assembly, que son lenguajes de sistemas informáticos de nivel extremadamente bajo que normalmente no necesita saber. También aprendí Java y C++. Pero ya no los uso de forma muy activa.
En mi carrera profesional, aprendí Python, Golang, PHP, React y Ruby. Pero cada empresa utiliza algo un poco diferente. O introducen nuevos idiomas que hacen cosas diferentes. Y por eso mencioné durante su pasantía que es bueno que sea capaz de exponer y aprender rápido.
Cuando empecé mis prácticas en Lyft, no sabía Python. No tenía ni idea de qué era. Por suerte, Python es un lenguaje bastante accesible. Creo que siempre voy a aprender estos idiomas. Es como aprender un idioma hablado real de esa manera, donde hay cosas que cambian todo el tiempo. Hay una enorme mezcla de cosas que pueden hacer estos idiomas, por lo que aprende constantemente cuáles son esas cosas nuevas.
Para mí, programar activamente en un idioma y sentirme cómodo con él probablemente lleve cuatro semanas. Pero incluso en ese momento, sigue buscando en Google muchas cosas. Siento que busco en Google cómo hacer «para bucles» en ciertos idiomas, que es algo muy básico. Pero cada idioma tiene una sintaxis diferente incluso para las cosas más simples. Por suerte, Google o cualquier motor de búsqueda es un gran recurso para aprender a hacer lo que tenga que hacer en cualquier idioma.
Siempre busco en Google las cosas más sencillas. Recuerdo que hace poco hubo un hilo de Twitter en el que muchos ingenieros sénior tuiteaban cosas que aún tienen que buscar. Y me ha ayudado mucho con mi propio síndrome del impostor, saber que estas personas a las que admiro mucho porque son grandes ingenieros también buscan cosas muy simples.
¿Cómo consiguió su trabajo actual en Stripe?
LinkedIn, sinceramente. Sé que LinkedIn no es para todo el mundo. Pero definitivamente lo uso como una herramienta para mi carrera. Mantengo mi LinkedIn actualizado. Ahí tengo mi correo electrónico. La gente puede ponerse en contacto.
Mi actual gerente de Stripe me contactó en LinkedIn. Me acaba de enviar un mensaje y decía: «Hola, estoy contratando. ¿Tiene algún interés?» Y Stripe siempre había estado en mi radar. La verdad es que no tenía pensado dejar Lyft cuando lo hice. Pero creo firmemente que si hay una oportunidad que le parece interesante, al menos debería mantener la conversación. Así que lo hice, y me fue muy bien.
A partir de ahí, estaba como: voy a hacer una entrevista y ver a dónde va. Tal vez no funcione, y está bien. Entonces, empecé a estudiar. Hice la entrevista. Hace una entrevista telefónica, que normalmente consiste en una o dos preguntas con una persona. Y luego hace un sitio, que ahora es totalmente virtual. Pero la entrevista in situ incluye unas cinco entrevistas. Después de eso, averigua si ha conseguido el trabajo o no y, a continuación, comienza a negociar.
Creo que lo más difícil muchas veces es poner el pie en la puerta, que reconozcan su currículum. Definitivamente uso LinkedIn para ayudarme a establecer esas conexiones.
¿Los reclutadores suelen contactarlo mucho?
Definitivamente hay más puestos vacantes de ingeniería de software que de ingenieros de software. Esa brecha seguirá aumentando a menos que hagamos mucho más para que más personas se eduquen en ciencias de la computación. Mucha gente se pondrá en contacto conmigo para hablar sobre sus puestos vacantes. Cuando buscaba trabajo, fui muy proactivo a la hora de contactar con las empresas que me parecieron interesantes, aunque no me hubieran contactado. Así que no todo es entrante.
Pero tengo mucho privilegio en el sentido de que tengo mi título de Stanford. Tengo Lyft, Slack y ahora Stripe en mi currículum. Y son organizaciones e instituciones muy respetadas. Creo que recibo mucho tráfico entrante por los nombres que están en mi LinkedIn y en mi currículum. Sé que ese no es necesariamente el caso de muchos otros ingenieros —grandes ingenieros, mejores ingenieros que yo— simplemente porque no tienen estas marcas en su currículum. Así que, aunque hay muchos puestos vacantes, creo que también hay mucho elitismo en la industria.
Sé de empresas que dicen: «Oh, solo contratamos a personas de las cinco mejores escuelas de informática», lo cual es absurdo. Creo que todavía hay una tensión extraña en el sentido de que hay mucha gente que puede hacer este trabajo. Hay muchos puestos vacantes. Pero entonces la gente tiene expectativas irreales sobre el aspecto que debe tener un currículum.
Y, por supuesto, las entrevistas son intensas, como estaba describiendo. No todo el mundo tiene los recursos para prepararse durante tres meses para una entrevista. Así que es necesario cerrar esas brechas, en mi opinión.
Cuando se le presentan un montón de oportunidades como esa, ¿cómo decide cuáles valen la pena su tiempo?
Creo que depende en gran medida de lo que quiera hacer. Hay muchos tipos diferentes de ingeniería de software. Así que cuando mi gerente de Stripe se puso en contacto conmigo, fue para un puesto completo, más de ingeniería de productos. Estaba haciendo un montón de ingeniería de infraestructuras en Lyft y me interesaba saber cómo sería trabajar en un equipo de productos.
Stripe también es muy conocido y tiene fama de ser un buen lugar para ingenieros y desarrolladores. Fue una combinación particular que me interesó. Pero alguien que quiera trabajar en muchas cosas de IA y aprendizaje automático puede que no esté muy interesado en un puesto de producto en Stripe. Así que cuando reciba solicitudes entrantes para la nueva y popular empresa de IA, no va a despertar tanto mi interés porque no es necesariamente lo que me interesa.
Hay muchos otros tipos de factores, como ¿en qué tamaño de empresa quiere trabajar? ¿Le interesa una startup del tamaño de Google o de cinco personas?
Las decisiones empresariales que he tomado hasta ahora están todas a la par. Slack, Lyft y Stripe tienen todos el mismo tamaño y tienen organizaciones de ingeniería de tamaño similar. Las valoraciones están en un ámbito similar. Todas eran anteriores a la OPI cuando empecé a trabajar en estas empresas, algo que buscaba especialmente.
En el futuro, eso podría cambiar. Puede que busque algo completamente diferente. Y creo que probablemente debería en algún momento ampliar mi gama de experiencias.
Pero así es como lo reduzco. Tengo una idea bastante clara de lo que busco cuando empiezo a buscar trabajo. Así que lo filtraré en función de los requisitos que tengo.
¿Ha mencionado algunos tipos de ingeniería de software? ¿Puede hablarme un poco más sobre los diferentes tipos?
Hay muchos tipos diferentes de ingeniería de software. Probablemente ni siquiera los conozca a todos. Siempre estoy aprendiendo sobre nuevas áreas en las que la gente innova.
Lo básico es el front-end, que se parece más al desarrollo web o a lo que ve en la pantalla del ordenador. El back-end se parece más a servidores y algoritmos y cosas que no ve como usuario pero que ayudan a impulsar el front-end. Y luego está la gente que está llena, que hace ambas cosas.
Está la ingeniería de infraestructuras, que consiste en crear servicios, como microservicios, servidores monolíticos o canalizaciones de observabilidad, cosas que tienen que estar por debajo de la capa de fondo para que funcione. Muchas de las herramientas de desarrollo se consideran infraestructura, cosas que mantienen las capas superiores en funcionamiento. Eso es mucho de lo que hacía en Lyft.
Hay ingenieros de aprendizaje automático e inteligencia artificial. Está la ingeniería de datos. Está el SRE, que son los ingenieros de confiabilidad del sitio, que mantienen las luces encendidas y se aseguran de que todo funciona correctamente. Hay ingenieros de control de calidad que prueban la calidad de las cosas que construyen otros ingenieros. Y crean sistemas automatizados para comprobar la calidad de los productos. Y está la ingeniería móvil: personas que crean aplicaciones para iOS, aplicaciones para Android, que es un conjunto de habilidades completamente diferente.
Sea cual sea su interés, probablemente haya un tipo de ingeniería de software que se ajuste a eso.
¿Es difícil cambiar entre esos diferentes tipos?
Creo que lo más difícil es aprender la nueva tecnología. Los gerentes de contratación son bastante abiertos, por ejemplo, si solo ha trabajado en infraestructura, están dispuestos a contratarlo para un equipo de producto o viceversa. Eso puede ser bueno porque tienen una perspectiva diferente a la de las personas que solo han trabajado en infraestructuras.
Lo más importante que tiene que hacer es aprender el nuevo idioma y aprender las nuevas tecnologías. Y hay muchos recursos para aprender. Hay cursos, libros y proyectos o tutoriales en línea de Udemy que puede seguir para entender cómo hacer algo.
Creo que las partes que son un poco más difíciles de aprender son quizás la IA y el aprendizaje automático, porque requieren una educación muy específica y más basada en las matemáticas. De lo contrario, es bastante sencillo dedicarse a un área diferente de la informática o la ingeniería de software.
Si quisiera ser ingeniero de software, ¿cuáles son las habilidades más importantes que debería desarrollar ahora mismo?
No cabe duda de que crear, probar y mantener el software es el conjunto de habilidades principales. Poner el pie en la puerta y conseguir un trabajo tiene que ver en gran medida con desarrollar esas habilidades de entrevista, que también hay muchos recursos para desarrollar esas habilidades. Yo diría que muchas de las habilidades de las que la gente no habla realmente y que se necesitan para ser un buen ingeniero de software son más de habilidades blandas, como las habilidades de comunicación verbal y escrita, organización y gestión de proyectos.
¿Puede hablar un poco sobre algunos de los conceptos erróneos sobre esta trayectoria profesional?
Una gran idea errónea es que los ingenieros de software solo codifican, lo cual no es cierto. Gran parte de mi trabajo consiste en escribir documentación para explicar cosas a la gente o comunicar o presentar ideas. Muchas de ellas son reuniones en las que determinamos la dirección de un software o un producto en particular. Y todas ellas implican muchas otras habilidades que no son la programación.
Creo que la gente tiene esta visión de los ingenieros de software de que estamos en un cuarto oscuro programando solos todo el tiempo, que es el ambiente a veces. No voy a mentir. A veces hay un problema que tiene que resolver con el código. Pero gran parte del trabajo es muy colaborativo y no trabajo en solitario, sino mucho de planificar, trabajar en equipo, comunicar lo que hace y hacer las preguntas que pueda tener para que la gente pueda ayudarlo.
Otro artículo que es enorme y que la gente no tiene realmente en cuenta es la importancia de la tutoría de la gente en la ingeniería de software. Eso puede significar asesorar a personas que son más jóvenes que usted o simplemente a personas que son nuevas en su equipo. La ingeniería de software es un deporte de equipo, y creo que una gran habilidad es asegurarse de que las personas nuevas que conozcan lo que sea en lo que esté trabajando puedan trabajar en ello, ser productivas y ser un miembro activo del equipo. Eso implica hacer que la gente se ponga manos a la obra, ayudarla, responder a muchas preguntas y poder comunicar sus ideas.
La ingeniería de software y la industria de la tecnología en general, son predominantemente blancos. Es predominantemente masculino. ¿Le importaría hablar un poco sobre lo que es navegar en una industria como esa?
Es duro. Definitivamente es una lucha. Tengo el gran privilegio de poder navegar por el campo con la escuela a la que fui y los trabajos que tuve anteriormente. E incluso con eso, definitivamente hay personas que dudan de sus habilidades, dudan de sus habilidades y socavan su trabajo, lo cual es horrible. Es duro y no es justo y definitivamente tiene que cambiar.
Para mí, navegar mucho ha sido mi propio trabajo interno de mantenerme seguro de mí mismo, seguro de mí mismo, seguro de mis habilidades, mi educación y todo lo que aporto, aunque no todo el mundo lo vea. Está definitivamente claro que muchas personas, empresas y equipos ven las habilidades que todo el mundo puede aportar independientemente de su origen o del colegio al que haya asistido o de la empresa en la que haya trabajado anteriormente. Pero según la cultura de la empresa, la composición específica de la empresa y su gerente, hacerlo es definitivamente una rutina diaria. Creo que es más trabajo del que tiene que hacer un ingeniero de software para encontrar un equipo y encontrar una empresa que funcione para usted.
Una de las cosas que pregunto cuando investigo a las empresas y los equipos es: ¿qué aspecto tiene la diversidad en la empresa? ¿Cómo piensa o trata su empresa la diversidad y la inclusión? ¿Hay otras personas en la empresa que se parecen a mí a las que les vaya bien y se sientan bien? Definitivamente, esa es una parte de mi investigación. Y es un trabajo duro en sí mismo investigar esas cosas y descubrirlas. Pero es necesario para ser el mejor empleado o ingeniero posible.
¿Cuáles son algunos de los otros obstáculos y desafíos de esta trayectoria profesional?
Puede ser diferente según quién sea y con qué tenga problemas en particular. Para mí, lucho contra el síndrome del impostor. Así que uno de mis problemas diarios es sentir que estoy haciendo un buen trabajo. Me ayuda mucho cuando la gente me da su opinión para que sepa cómo me va. Y también me ayuda cuando recibo algún refuerzo positivo.
Como la ingeniería es un espacio tan dominado por los hombres y los hombres blancos, a menudo puede parecer que no estoy a la altura porque creo que mucha gente a veces no reconoce las habilidades que tengo debido a mi identidad diferente. Así que mantener la confianza y la seguridad de mí mismo ha sido un gran desafío para mí en ingeniería de software.
También existe la idea del ingeniero 10 veces, el ingeniero que acaba de hacer el trabajo de otros 10 ingenieros y es superproductivo. Ese es el ideal que la gente espera de los ingenieros. Pero simplemente no es cierto ni es realmente alcanzable, y puede afectar al equilibrio entre la vida laboral y personal. Mantener esos límites, entender lo que es capaz de hacer en un día y saber que está bien también es algo que alimenta el síndrome del impostor. Es algo con lo que he tenido problemas y con lo que he tenido que lidiar.
Lo que realmente ayuda es tener una comunidad de personas que hagan lo que usted hace, ya sea en su empresa o fuera de ella, o idealmente en ambas, con las que pueda hablar sobre cualquier problema que tenga. Porque 10 de cada 10 veces, cuando le pregunto a alguien de mi comunidad o de mi grupo de apoyo formado por otros ingenieros de software: «¿Ha tenido problemas con esto?» la respuesta es sí.
Y hayan descubierto la solución o no, se siente mejor al saber que otras personas están lidiando con las mismas cosas que usted. Lo recomendaría para cualquier trayectoria profesional, ya sea ingeniería de software o no. Tener a su gente, tener su comunidad, ayuda en cualquier tipo de lucha a la que se enfrente.
Hablemos de dinero. ¿Qué debo esperar que me paguen por un puesto de ingeniero de software?
Depende de muchos factores diferentes. Su ubicación: si es ingeniero de software en Alabama, su salario será diferente al de un ingeniero de software en San Francisco debido a los diferentes costes de vida. El tamaño de la empresa también importa y en qué fase de crecimiento se encuentra. Google y Facebook tendrán las ofertas más altas. Las empresas que tal vez estén antes de la OPI y que estén creciendo mucho, también tendrán ofertas altas. Las empresas que tal vez sean empresas emergentes o empresas emergentes en fase inicial o de la serie A tendrán salarios más bajos. Pero hay muchas ventajas si piensa en las acciones y las acciones.
Si se encuentra en uno de los lugares costeros (San Francisco, Nueva York, Los Ángeles), algunos de esos centros tecnológicos más grandes y establecidos, si no gana 100 000 dólares con la universidad, probablemente le paguen mal o al menos pueda encontrar una empresa que le pague más. No estoy seguro de qué será eso si encuentra trabajo en Atlanta, por ejemplo. Puede que tenga un aspecto muy diferente.
Hay recursos en Internet que le ayudarán a averiguar si acaba de recibir una oferta o si es justa, según su ubicación, su nivel y el tamaño de la empresa. Yo recomendaría visitar sitios web como Levels.FYI y Glassdoor para obtener información salarial.
Yo también diría que hable con sus amigos. La gente no habla de cuánto gana lo suficiente, lo que creo que lleva a una gran desigualdad salarial en la industria. Yo preguntaría directamente a la gente: «¿Cuánto gana?» Cuando he visto a la gente darse cuenta de que no se les paga de manera justa, es porque las personas que las rodean han sido honestas con lo que ganan y se dan cuenta de que algo no cuadra. Así que hablaría con la gente y la animaría a ser transparente, porque es lo que tiene que suceder para que estas empresas, que muchas veces no quieren pagarle de manera justa, rindan cuentas.
¿Qué es lo que le encanta de la ingeniería de software?
Es la mezcla del trabajo en equipo, la colaboración, la programación en parejas y la resolución de problemas con la capacidad de hacer mucho trabajo en solitario y resolver los problemas por su cuenta. Me gusta el proceso de codificación y no sé lo que está pasando realmente, sino probando y solucionando un problema, buscando en Google lo que sea necesario y, luego, encontrar una solución. Esa sensación, esa gratificación de averiguar cómo hacer algo o resolver un error, es inigualable.
Disfruto de mis equipos. Me gusta trabajar con la gente y me gusta un poco hacer lo mío. La ingeniería de software definitivamente le permite hacer ambas cosas y, según el tipo de empresa en la que trabaje, le permite hacer más de una u otra según lo que quiera. También hay mucha flexibilidad en ese sentido.
¿Hay algo que desearía haber sabido sobre esta trayectoria profesional antes de empezar?
Cuando empecé y me especialicé en Ciencias de la Computación, no sabía la intensidad de las entrevistas ni cuánto había que estudiar para ellas. Incluso si lleva 10 años en su carrera, si quiere cambiar de trabajo, tiene que estudiar. No lo sabía.
También ojalá hubiera sabido todos los diferentes tipos de ingeniería que puede hacer. Cuando empecé mi trabajo a tiempo completo en Lyft, no me importaba en qué parte de la pila estuviera trabajando. En mi cabeza era más o menos lo mismo. Mis dos primeras pasantías fueron diferentes en lo que estaba trabajando. Pero no era eso a lo que realmente prestaba atención en ese momento. Solo estaba intentando hacer un buen trabajo, pero no estaba pensando realmente en qué es en lo que quiero trabajar. ¿Cuáles son los tipos de problemas que creo que son interesantes y que quiero resolver? ¿Son problemas de infraestructura? ¿Son problemas con el producto? ¿Es frontal? ¿Es un back-end?
Por ejemplo, ojalá hubiera invertido más tiempo en aprender ingeniería móvil. Podría cambiarme a hacerlo y probablemente lo haga en algún momento porque me parece interesante. Pero ni siquiera pensé en ninguna de esas cosas. La verdad es que puede cambiarle el día a día. Realmente puede cambiar el tipo de trabajo que realiza, según el tipo de equipo en el que esté, el aspecto de su pila y el tipo de producto que produzca. Ojalá hubiera sabido esas diferencias y en qué se diferencian esos tipos de equipos en su funcionamiento.
Vale, la última pregunta: ¿Quién es lo que más le gusta en su carrera?
Admiro mucho a Erica Joy Baker. Es ingeniera de software. Trabajaba en Slack cuando yo estaba haciendo una pasantía allí y la conocía antes. Estuvo en Google durante mucho tiempo. Y ahora ha hecho la transición a la dirección y es la directora de tecnología del Comité de Campaña del Congreso Demócrata. Me gusta mucho la forma en que se presenta. Tuve la oportunidad de hablar con ella hace unos años sobre su trabajo y sobre la forma en que aborda su trabajo. También escribe mucho en Internet para darle más información sobre su forma de pensar.
Es alguien que pone todo su ser en el trabajo y utiliza sus cualidades únicas para liderar. Lo admiro mucho y me encantaría irradiar más de eso en el trabajo. Parece tener mucha confianza en sí misma y en sus habilidades. Y la gente tiene mucha confianza en ella por eso. Y eso también lo admiro.
Además, la transición a la dirección y ascender en esa carrera profesional hasta ser director de ingeniería también es algo que me interesa mucho y creo que me dedicaré eventualmente. Creo que están resolviendo un nivel superior de preguntas de ingeniería sobre la organización y la forma en que las personas trabajan juntas, lo cual me parece muy interesante.
Artículos Relacionados

La IA es genial en las tareas rutinarias. He aquí por qué los consejos de administración deberían resistirse a utilizarla.

Investigación: Cuando el esfuerzo adicional le hace empeorar en su trabajo
A todos nos ha pasado: después de intentar proactivamente agilizar un proceso en el trabajo, se siente mentalmente agotado y menos capaz de realizar bien otras tareas. Pero, ¿tomar la iniciativa para mejorar las tareas de su trabajo le hizo realmente peor en otras actividades al final del día? Un nuevo estudio de trabajadores franceses ha encontrado pruebas contundentes de que cuanto más intentan los trabajadores mejorar las tareas, peor es su rendimiento mental a la hora de cerrar. Esto tiene implicaciones sobre cómo las empresas pueden apoyar mejor a sus equipos para que tengan lo que necesitan para ser proactivos sin fatigarse mentalmente.

En tiempos inciertos, hágase estas preguntas antes de tomar una decisión
En medio de la inestabilidad geopolítica, las conmociones climáticas, la disrupción de la IA, etc., los líderes de hoy en día no navegan por las crisis ocasionales, sino que operan en un estado de perma-crisis.