• Empresas de E.E.U.U buscando devs en México

    En Reddit, me encontré una pregunta de alguien que tiene una empresa en EE. UU., y pide consejo sobre cómo conectar con desarrolladores en México:

    Tienes algún consejo o recomendación sobre cómo contratar ingenieros a tiempo completo en México? Estoy empezando a hacerlo y agradecería cualquier consejo que tengas (escuelas destacadas, consejos para encontrar talento, bolsas de trabajo donde puedo publicar, etc.)

    Creo que depende mucho de qué es lo que quiera hacer a mediano/largo plazo, porque las estrategias se pueden ver muy diferentes. Y esto aplica para ambos lados de la ecuación.

    La empresa de EE. UU. que busca devs en México

    Considera el giro del negocio, y la motivación para contratar gente en México. Lo puedo ver a través del lente de consultoras vs. empresas de producto.

    Si es una consultora, y nada más está buscando mano de obra más económica, pues el approach podría ser mucho más relajado: busca comunidades locales, y patrocina algunos de sus eventos.  Lo puedes hacer hasta de manera remota. Esto también te da mucha más flexibilidad y apertura, porque ni siquiera tienes que hacerte presente, así que no nada más puedes buscar en el mercado de México, sino de toda Latinoamérica.

    Para una empresa de producto que está buscando expandir y diversificar su talento, la estrategia se puede ver muy similar de inicio. Encuentra un meetup y patrocina unos eventos, sí. Pero también hazte presente y trae a alguien más de tu equipo para hacer conectes. Déjale ver a la comunidad que vas en serio, y que estás apostando por talento local. (Así conseguí mi primera chamba para una startup de San Francisco.)

    Para empresas de producto, también es importante no pensar solamente en cómo contratar desarrolladores, sino cómo mantenerlos. Hablamos de probablemente tener una entidad legal en México, ofrecerles beneficios, paga competitiva, oportunidades de crecimiento profesional, entre otros. Contratar es lo fácil.

    El dev de México que busca chamba en EE. UU.

    De este lado, también hay algunos matices que considerar.

    Si eres uno de esos a los que le gusta coleccionar chambas y trae de a 3 al mismo tiempo, es un approach muy diferente a alguien que le está tirando a hacer una carrera a largo plazo en un dominio específico.

    Los busca chambas 3000 van a priorizar las oportunidades que paguen más con la mayor flexibilidad posible. Por ejemplo, un proceso de entrevistas meticuloso, tener que estar en llamadas, o con disponibilidad en cierto horario, pueden ser factores que hagan que ni siquiera consideren una oportunidad.

    Pero alguien que tiene una visión de crecimiento profesional a largo plazo, podría considerar una oportunidad con los mismos requerimientos de manera más seria — siempre y cuando esté alineada con lo que esta persona quiere.

    ¿Entonces?

    Al final de cuentas es un juego de oferta y demanda, como en cualquier mercado.

    Y para que no te vendan gato por liebre, primero tienes que saber por qué quieres una liebre, cómo distinguirla de un gato, y, lo más importante, a dónde ir a buscarla. Porque si buscas liebres donde hay puros gatos, adivina qué vas a obtener.

  • Sí hay candidatos buenos. Somos malos reclutando.

    Juan Montilla, en LinkedIn:

    … solo descartar un entrevistado porque no logra hacer un Algoritmo Sort tipo: Selección, Inserción ó no sabe crear un Árbol Binario Invertido, pero conversando sabe hacer:

    • API
    • Deployment en Cloud
    • CI/CD
    • Docker

    Pregunto: ¿Por qué no tomarlo? si para la vacante no va a estar haciendo rectos algorítmicos complejos.

    Hay empresas que dicen que quieren contratar a los mejores, pero su definición de “mejor” no está para nada asociada con la realidad del trabajo del día a día. Juan continúa:

    Entonces dicen: “Nos cuesta reclutar”, y surgen comentarios que: “los Bootcamps no sirven y las Universidades tampoco”.

    Realmente lo que no funciona, es el proceso de entrevista de N entidades.

    Es un excelente punto, pero creo que no es el que Juan está queriendo hacer.

    Pensar que un recién salido de un bootcamp (o de una universidad, vaya) va a poder diseñar un proceso de reclutamiento que tome en cuenta todos estos matices de desarrollo profesional está en al nivel de ingenuidad que las empresas que entrevistan con algoritmos cuando únicamente hacen CRUDs.

    Irónicamente, en mi experiencia, son precisamente este tipo de empresas las que dejan a sus propios ingenieros diseñar el proceso de entrevistas, y delegan completamente esta responsabilidad a gente que no está capacitada para asumirla.

    Sucede así: una empresa contrata a un ingeniero que, por suerte, es muy bueno tirando código. Y si es bueno tirando código, naturalmente también será bueno filtrando candidatos (¡dhu!). Entonces, de repente, el ingeniero bueno tiene la validación de su empresa para emitir un juicio sobre los candidatos que llegan a tocar sus puertas. Y hay de dos: o el candidato es muy bueno, o incluso mejor que el que lo está entrevistando, y decide no contratarlo porque pone en riesgo su estatus dentro de la compañía; o no es tan bueno técnicamente como el entrevistador, y aprovecha la oportunidad para masajear su ego.

    “Lo siento, jefe, no nos llega ningún candidato bueno.”

    Que entre líneas es un “yo soy el mejor” disfrazado.

    En un artículo pasado, escribí:

    El gatekeeping es una de las principales razones por las que las comunidades de tecnología se pueden sentir tan hostiles y cerradas para las personas que están intentando incursionar en este mundo. Viene de la noción de que “si me costó tanto trabajo a mí, no debería ser más sencillo para ti”, acompañado de un toque de narcisismo al asumir que la otra persona quiere exactamente lo mismo que tú — o que desea obtener exactamente tus mismos resultados.

    Y creo que ese es el problema que se tiene que resolver.

    ¿De quién es la responsabilidad, entonces? Del equipo de liderazgo: del CEO, del CTO, del CPO, de los directores de área — de la persona que decide que la empresa necesita contratar a alguien más. Porque si están en esa posición, se podría asumir que es porque son expertos en los aspectos humanos del trabajo, y no nada más de la parte técnica. Son las personas en esta posición las que tienen que involucrarse activamente a definir los procesos, y asegurarse que las expectativas de las personas que los están implementando están claras.

    Sí, los procesos pueden ser deficientes. Y si lo son, es porque los que deberían de asegurarse que los incentivos estén alineados no están haciendo bien su chamba.

  • Soy tech lead, pero parece que lo que hago afecta más de lo que ayuda

    Juan R., de CDMX, me envía esta pregunta:

    Soy tech lead en una fintech emergente en la Ciudad de México. En los últimos meses, he notado que no estoy logrando un buen equilibrio entre liderar a mi equipo y continuar con mis responsabilidades técnicas directas. Por ejemplo, una semana puedo pasarla completamente en reuniones, gestionando retros, planificando sprints y alineando al equipo con el producto, pero eso me deja muy poco tiempo para hacer revisiones de código o trabajar en las implementaciones técnicas avanzadas. Luego, cuando trato de enfocarme en respaldar técnicamente a mi equipo, termino descuidando los aspectos de liderazgo y comunicación, lo que afecta la entrega de proyectos e impide que los más juniors crezcan adecuadamente.

    Esta situación me tiene bastante frustrado, porque siento que en ambos frentes estoy fallando. Mi jefe me dio excelentes comentarios sobre mi capacidad para gestionar, pero señaló que descuido las revisiones técnicas y, si no mejoro en eso, podríamos cometer errores que afectarán al equipo. Pero cuando invierto tiempo en lo técnico, noto cómo algunas dinámicas del equipo se resienten (la comunicación se estanca o fallamos en la entrega de ciertos backlog tasks). Entonces, me pregunto: ¿cómo puedo encontrar una estructura o flujo que me permita balancear mejor ambas responsabilidades y dejar de sentir que siempre hay algo (o alguien) que está siendo desatendido?

    ¡Felicidades, eres víctima de tu propio éxito!

    Ya, en serio: quiero honestamente felicitarte porque parece ser que eres muy bueno en ambos aspectos de tu trabajo, lo cual ya es de admirar.

    Lo primero que me gustaría saber es si el rol de “tech lead” está bien definido dentro de tu organización, y cuál es la diferencia de expectativas entre esa posición y la de un Engineering Manager. Diferentes organizaciones tienen diferentes expectativas para estos roles que requieren un poco más de seniority, y sería importante saber cuál es el contexto en tu situación particular.

    Por lo que me comentas, me atrevería a asumir que en tu organización no existe un rol de Engineering Manager, y que toda la responsabilidad, tanto del equipo, como proyectos y entregables, se la recargan al líder técnico. Además, me atrevería a asumir que le reportas a alguien que está supervisando muchos equipos — probablemente un director de área.

    Tomando eso en cuenta, creo que lo que te está pasando es un caso de “el que mucho abarca, poco aprieta”. Y no digo que necesariamente sea tu culpa: puede ser que la estructura organizacional y expectativas de tu rol te hayan puesto en esta situación.

    Pero aquí no echamos culpas. Aquí nos hacemos responsables. Así que toca buscar cómo darle la vuelta.

    Si yo fuera tu manager, primero te invitaría a que revisáramos las responsabilidades de tu rol para tener claridad de las expectativas.

    Segundo, me pondría a trabajar mucho contigo en desarrollar tus habilidades de liderazgo y de delegar responsabilidades.

    Tu jefe tiene razón al decir que si descuidas las revisiones técnicas podrían cometer errores que afecten al equipo. También yo podría argumentar que el hecho de que tú seas el único que puede revisar el trabajo de tus compañeros les quita la oportunidad de desarrollar esas mismas habilidades que te llevaron a ti a ser tech lead.

    Lo que está pasando es que estás siendo un cuello de botella para tu equipo. Y en el proceso te estás quemando.

    Esto me queda claro cuando mencionas que cuando le dejas de poner atención a un área de tu equipo, se nota que los procesos y rutinas comienzan a fallar. O tienes demasiadas responsabilidades a tu cargo; o el equipo no tiene claras cuáles son las responsabilidades compartidas que tienen.

    En cualquiera de las dos, tú estás en medio, y como su líder, es tu responsabilidad identificar el problema y resolverlo.

    Ahora, cuando hablo de “aprender a delegar” no quiero decir “tienes que aprender a asignar tareas a otras personas”. Delegar se trata de transferir responsabilidades, no tareas, a otras personas. Y para tener éxito delegando, tienes que asegurarte que la persona a la que le estás dando esa responsabilidad está capacitada para cumplirla. He dicho anteriormente que una de las cosas que menos me gusta de ser Engineering Manager es que no puedo resolver problemas de personas a través de un Pull Request, y estás a punto de entender por qué. Porque el problema que tienes ahorita, no se va a resolver hoy o mañana, sino dentro de unos cuantos meses de prueba y error, donde poco a poco vas a involucrar cada vez más a los miembros de tu equipo en las tareas que actualmente dependen completamente de ti.

    Identifica cuáles responsabilidades y procesos están actualmente atados a tu presencia. Recluta a alguien de tu equipo que esté interesado en crecer en esa área, y comienza a hacerle shadow. Dale feedback, y ayúdale a sentirse más cómodo con sus habilidades. Establece una cadencia para darle seguimiento y procurar su mejora continua.

    Durante este proceso, también te vas a encargar de crear un ambiente de responsabilidad compartida dentro de tu equipo. Procurar que todos tengan un sentido de “ownership” de las metas a las que quieren llegar. Les vas a hacer saber, y a demostrar, que sí, tú eres el tech lead, pero la satisfacción de un trabajo bien hecho es de ellos.

    No va a ser fácil, ni rápido. Como dice el dicho, “se va a poner peor antes de que mejore”. Pero si lo que estás buscando es un cambio a largo plazo, este es el camino. No solamente estarás más tranquilo sabiendo que el equipo no depende de que tú estés presente para cumplir sus metas. También sentirás una gran satisfacción al saber que no estás entregando a tiempo, sino que también estás ayudando a crecer profesionalmente a las otras personas de tu equipo.

    Así que mi recomendación es que comiences de ya. Aquí hay algunos libros que te podría recomendar para que continúes explorando estas ideas más en profundidad:

    ¡Éxito!

  • El impacto del código que escribes

    No importa si tu trabajo es escribir código, diseñar interfaces, o crear pruebas. La única razón por la que tienes un empleo, es porque le estás resolviendo un problema a una persona.

    Si pierdes el foco del impacto y de la importancia de tu trabajo, vas a comenzar a creer que lo más importante está en la tecnología, en la implementación. Y sí, es importante, pero es solo la mitad de la ecuación.

    Tu solución, por sofisticada que sea, no vale absolutamente nada por sí sola. Únicamente se vuelve valiosa cuando toca a otras personas: porque le resolviste el problema a tu usuario; porque le hiciste la vida más fácil a tus compañeros; porque ayudaste al negocio a acercarse más a sus metas.

    Tirar código es divertido y mentalmente estimulante, sí. Hacerlo en servicio de otros, lo es todavía más.

    ¿Qué impacto va a tener el código que escribas hoy?

  • Cómo destacar como ingeniera de software en un mercado globalizado

    Como el correo de ayer tuvo una excelente respuesta, ¡vamos a seguirle con “Pregúntale a Swanros”!

    Recuerda que me puedes mandar tu pregunta llenando este formulario.

    La que voy a responder hoy viene de Sofía, de Guadalajara, México:

    Me gustaría saber cómo puedo desarrollar mi marca personal como ingeniera de software en un mercado global. ¿Qué estrategias puedo implementar para destacar en mi campo y aumentar mi visibilidad en la industria?

    Aunque estoy contenta con mi trabajo, me preocupa no destacar lo suficiente en mi campo y no tener una marca personal sólida. También estoy interesada en explorar oportunidades de trabajo remoto o independiente, y me gustaría saber cómo puedo construir una marca personal convincente para atraer a posibles empleadores y clientes.

     

    Estoy dispuesta a trabajar duro y seguir aprendiendo para alcanzar mis metas profesionales, pero me gustaría recibir orientación sobre cómo hacerlo de manera efectiva.

    Para comenzar, hablas de marca personal, y me gusta mucho que estés pensando en eso. Solamente quiero mencionar algo: tener una “marca personal” no necesariamente significa que tienes que tener un logo, un eslogan, un sitio web, y presencia en redes sociales. Sí, hay personas que lo hacen, pero no es la única manera. Todas esas cosas son solamente elementos de una marca personal, pero no son la marca personal.

    Ahora, tener un trabajo remoto y ser un profesional independiente son dos cosas completamente diferentes. ¿Por cuál te quieres ir? Me podría pasar todo el correo hablando a detalle de cada una, pero no me preguntaste eso. Así que lo mantendré breve:

    Trabajar de manera remota es como cualquier otro empleo, pero requiere que tengas excelentes habilidades de comunicación, que seas proactiva, y que tengas la capacidad de trabajar de manera asíncrona.

    (Aquí hay un video de una charla que di para SoftwareGurú en 2021 donde hablo sobre mi experiencia de más de 10 años de trabajo remoto. Tal vez te sirva también.)

    Por otro lado, ser un profesional del software independiente se trata más de saber cómo manejar un negocio que de programar. Necesitas saber cómo valuar y vender tu trabajo, aprender a cobrar, a hablar con clientes, a hacer tus procesos más eficientes, a llevar un control de tus gastos, etc., etc., etc. Cuando eres independiente, la realidad es que se trata de todo menos de escribir código.

    Para que cualquier iniciativa sea “efectiva”, necesitamos primero tener bien claro cuál es el problema real que estamos intentando resolver — y cómo vamos a determinar el grado de éxito al que le estamos apuntando.

    Habiendo dicho eso, preguntas de manera concreta sobre estrategias que puedas implementar para destacar en tu campo y aumentar tu visibilidad en la industria. Voy a responder asumiendo que lo que quieres es un trabajo remoto porque en eso sí tengo experiencia; soy la persona peor calificada para darte consejos de negocio. (También voy a asumir que no estás hablando de volverte influencer o líder de opinión. Eso de las redes sociales no se me da mucho tampoco.)

    Hace unos meses escribí en mi blog que la “industria de la tecnología” ya no existe. En ese artículo hago el argumento de que ya está tan democratizada, que ya no es viable intentar crear una carrera que destaque siendo “la mejor en X tecnología”:

    Hoy en día las empresas sí tienen un problema: que necesitan generar dinero. Y lo van a hacer de la manera que les sea posible.

    Creo que esto significa que las empresas…

    • Van a aprovechar la sobreoferta de desarrolladores medianamente capacitados, porque son más baratos. • Van a dejar de enfocarse en hacer tecnología, y más bien en resolver problemas de negocio fundamentales (comprar soluciones, en vez de desarrollarlas en casa). • Van a pagar los grandes sueldos y beneficios a personas que sepan hacer algo más que simplemente escribir código: a personas que tengan algo tangible que aportar al negocio.

    Te invito a que lo leas el artículo completo si tienes chance para que entiendas los matices de esos puntos, pero esa es la idea, esencialmente: para destacar en el mercado actual tienes que ser mucho más que alguien que solamente escribe código.

    Mi consejo puntual es: sí, tienes que ser suficientemente buena en tu craft, pero también tienes que desarrollar otras habilidades que lo complementen. Para eso, es importante que tengas claro qué tipo de problemas quieres resolver, y luego ver cómo puedes destacar en ese dominio. Recuerda, ya no existe “la industria de la tecnología”; ahora todos los negocios usan tecnología.

    ¿En qué tipo de negocio quieres trabajar? ¿Cuáles son las reglas del juego de esa industria? ¿Te identificas y hay una oportunidad de resolver problemas con la tecnología que dominas?

    Vuélvete experta en el dominio, y complementa con tu conocimiento sobre tecnología. Ya no puedes primero preocuparte por qué tecnología quieres usar, y luego buscar problemas para resolver con ella.

    Y si lo piensas, tiene sentido: tu verdadera marca personal es la reputación que te creas, para bien o para mal, con la forma en que ejecutas tu trabajo, y el valor que agregas a las personas que trabajan contigo.

    Y si encuentras un problema que te apasione, en una industria que comparta tus valores y que te brinde la oportunidad de aplicar tus conocimientos técnicos, ni siquiera te va a costar trabajo “dar ese extra” para desarrollar las habilidades complementarias que necesitas para destacar. Eso te va a llevar naturalmente a hacer un excelente trabajo, y tu buena reputación en tu industria te va a preceder.

    Espero que te sirvan estas ideas.

    ¡Saludos!

    —Oscar Swanros