Sobre convertirse en un Líder Técnico

Spanish audio is available in the player settings
Rate this content
Bookmark

Ser líder técnico suena como mucho trabajo. Y no del tipo divertido de programación. ¿Por qué querrías eso? ¿Cómo se siente cuando lo obtienes?

En esta charla, Swizec explica por qué dio el paso hacia el liderazgo técnico, cómo cambiaron sus prioridades y por qué significa que está haciendo más ingeniería que nunca. Un mundo completamente nuevo donde escribir código es la parte fácil.


25 min
09 Mar, 2023

Comments

Sign in or register to post your comment.

Video Summary and Transcription

El rol de un Líder Técnico implica dar forma a la hoja de ruta, ayudar al equipo a ser más efectivo y trabajar en proyectos importantes. Las lecciones aprendidas incluyen fomentar el intercambio de ideas, evitar asumir todo el trabajo y centrarse en la delegación. Los Líderes Técnicos se enfocan en el resultado, involucran al equipo en la toma de decisiones y hacen planes basados en cómo interactuarán las diferentes piezas. El rol de un Líder Técnico es enfocarse en la ingeniería y guiar al equipo para descubrir cómo debe encajar todo el sistema. La arquitectura puede volverse problemática cuando pierde contacto con la parte de codificación, lo que resulta en problemas de implementación.

Available in English

1. Introduction to Tech Lead Role

Short description:

Hola, soy Suez y voy a hablar sobre algunas lecciones aprendidas después de convertirme en un Tech Lead. El rol de un Tech Lead varía entre las empresas, pero a menudo se ve como un trampolín para convertirse en un ingeniero senior. Los Tech Leads son responsables de gestionar la dirección técnica de un equipo y multiplicar los esfuerzos del equipo. Tienen la oportunidad de participar en la toma de decisiones y dar forma a la hoja de ruta de los proyectos.

Hola, soy Suez y voy a hablar sobre algunas lecciones aprendidas después de convertirme en un Tech Lead. ¿Por qué querrías ser un Tech Lead y qué es lo que hacen exactamente los Tech Leads?

Primero que nada, ¿qué es un Tech Lead? La definición o la descripción del trabajo de un Tech Lead varía entre diferentes empresas. Algunas empresas lo consideran como un tipo de ingeniero senior. Algunas personas lo ven como un trampolín para convertirse en un ingeniero senior.

Y sabes, se supone que el rol es una de las primeras o las formas más comunes de ingresar a la trayectoria de liderazgo técnico, que es una especie de trayectoria paralela a la trayectoria de gestión donde muchas empresas en estos días tienen una trayectoria técnica en la que pasas de ser un ingeniero junior a un ingeniero de nivel medio a un ingeniero senior y puede haber varios niveles de ingeniero senior. Y luego se detiene. Puedes ser un ingeniero senior básicamente por el resto de tu vida. Por lo general, se considera un título terminal, lo que significa que una vez que eres un ingeniero senior de software confiamos en que trabajarás de forma independiente, seguirás con éxito los objetivos comerciales y completarás tus tareas.

Y luego puedes ir más allá, ya sea en la trayectoria técnica, que eventualmente, que llega a ser ingeniero principal, distinguido y todas esas personas. O puedes ir por la trayectoria de gestión, que es gerente de ingeniería, VP, CTO y ese tipo de cosas. No sé los pasos exactos. Por lo general, hay varios entre diferentes empresas. Y donde realmente se complica es en esta bifurcación del camino donde pasas de ser solo un ingeniero senior, o ser un ingeniero senior hacia algo más. ¿Cuál es el siguiente paso? A menudo, el tech lead es el primer siguiente paso que las personas toman. Y si lo ves como una bifurcación en el camino, el tech lead generalmente está más en el lado de la trayectoria de liderazgo técnico, personal principal, etc., y el líder de equipo es el primer paso hacia la trayectoria de gestión. Algunas empresas mezclan los dos, pero así es como generalmente funciona. Y la idea de una trayectoria de liderazgo técnico es que no eres responsable de gestionar personas, al menos no directamente. Eres más responsable de gestionar la dirección técnica de un equipo, especialmente como tech generalmente te enfocas en un equipo específico, lo que significa que aunque aún eres un contribuyente individual, tu producción ahora se juzga por lo que hace el equipo en su conjunto, excepto que a diferencia de un líder de equipo o un gerente, no te ocupas de las responsabilidades de gestión de personas. No tienes ninguna autoridad directa. Se trata más de influencia suave y de dirigir a las personas y ayudar, básicamente ayudar al equipo a tomar buenas decisiones técnicas para asegurarse de que los proyectos fluyan sin problemas, que estés trabajando con tu propietario de producto y multiplicando los esfuerzos del equipo. Diría que multiplicar los esfuerzos es probablemente lo principal que hacen los tech leads. Multiplicar los esfuerzos es lo principal que hacen los tech leads.

La pregunta que mucha gente hace es, ¿por qué querrías convertirte en un tech lead? ¿Qué es lo que hace que alguien quiera convertirse en un tech lead? Honestamente, varía entre las personas, pero para mí, la razón principal por la que decidí convertirme en un tech lead fue que después de hacer esto durante muchos años, la codificación se volvió algo fácil. Comencé a buscar cosas más interesantes que hacer que simplemente escribir código, y una cosa que me di cuenta mientras trabajaba en un equipo en una startup de rápido crecimiento es que se puede hacer mucho más si no eres la persona que golpea el teclado. Puedes tener un impacto mucho mayor, una contribución mucho más grande si estás ayudando al equipo completo a hacer más cosas y trabajar en los proyectos correctos en lugar de ser solo la persona que recibe instrucciones y escribe código.

Y una forma de tener más impacto es que como tech lead, tienes la oportunidad de estar en la sala donde se toman las decisiones importantes, donde los propietarios de productos y otros líderes técnicos deciden en qué va a trabajar este equipo a continuación, en qué nos vamos a enfocar. Si estás en esa sala, puedes ayudar a dar forma a la hoja de ruta y puedes ayudar con cosas simples como, hey, tenemos estas cinco ideas. ¿Cuál de estas se puede lograr en un cierto período de tiempo? Y si estás en esa sala, como tech lead, puedes decir, hey, eso tomaría, no sé, tal vez un par de semanas. Ese es realmente fácil. Ese es realmente difícil.

2. The Role of a Tech Lead

Short description:

Ser un líder técnico te permite dar forma a la hoja de ruta, ayudar al equipo y a la empresa a ser más efectivos y trabajar en proyectos importantes. Es un desafío diferente al simplemente trabajar en historias fragmentadas. Los mejores líderes técnicos son ingenieros que priorizan realizar el trabajo correcto y tener un impacto positivo. El liderazgo renuente y el enfoque en lo que beneficia a la empresa y al proyecto son rasgos clave.

Esta otra idea probablemente ni siquiera deberíamos intentarla porque requeriría una cantidad ridícula de trabajo y no parece ser lo más importante en este momento. Así que cuando tienes la oportunidad de dar forma a esa hoja de ruta, puedes ayudar a todo el equipo y a toda la empresa a ser más efectivos, hacer más cosas y asegurarte de que estás trabajando en cosas importantes, lo que significa que tienes un impacto más grande y eso se siente bien. Es un desafío interesante y diferente al simplemente recibir una historia fragmentada que, ya sabes, si estás haciendo Agile, recibes una historia fragmentada, te dice exactamente qué necesitas hacer y vas y lo haces. Si eres un líder técnico, tienes la oportunidad de estar allí mucho antes de que esas historias se fragmenten. A veces, incluso antes de que alguien sepa qué serán las historias, puedes estar en la sala y ayudar a las personas a decidir qué deberían ser las historias, qué proyectos deberían ser y luego ayudar a tu equipo a trabajar en ellos. Y creo que, lo que estoy tratando de decir básicamente es que no importa cuán productivo seas o cuánto código puedas escribir si estás trabajando en el tipo equivocado de proyecto. Y lo que diría aquí es que, creo que los mejores líderes técnicos son aquellos ingenieros que incluso llegarán a ser líderes si eso significa que se realizará más trabajo correcto y que sucederán más cosas buenas. Entonces, ya sabes, al menos personalmente, adopto un enfoque de liderazgo renuente. Y algunos de los mejores gerentes con los que he trabajado siempre fueron personas que no veían el liderazgo y ser un líder técnico o un gerente o esas posiciones superiores como, oh sí, ese es el siguiente paso en mi career. Tengo que hacerlo para crecer. Las mejores personas que he visto que asumen ese rol son las personas que incluso lo harán si eso significa que todo irá mejor para la empresa y el proyecto.

3. Lessons Learned as a Tech Lead

Short description:

Lecciones aprendidas como líder técnico: 1. Sé el payaso para fomentar el intercambio de ideas. 2. Evita asumir todo el trabajo y concéntrate en la delegación.

Entonces, ¿cuáles son algunas lecciones que he aprendido al desempeñar este rol? Ten en cuenta que estas son lecciones tempranas. Soy un líder técnico bastante nuevo. Lo bueno de estas lecciones es que aún provienen de la perspectiva de recordar cómo era no ser un líder técnico en lugar de, ya sabes, 20 años después cuando es como, ¿eh, qué era realmente lo nuevo de ser un líder técnico?

La primera lección que aprendí es que generalmente la persona que se convierte en líder técnico es el ingeniero más fuerte del equipo, o al menos generalmente es un ingeniero muy, muy fuerte. Lo que puedes hacer como líder técnico para ayudar al resto del equipo y empoderarlos es ser el payaso. Cuando, ya sabes, el gerente o el propietario del producto está pidiendo ideas, una de mis cosas favoritas para decir es, bueno, está bien. Necesitamos datos inmutables, pero no usemos la cadena de bloques. Es una broma divertida, ja ja. Pero también establece el límite de cómo se ve una idea estúpida. Como eres un líder técnico, tienes mucha reputación que puedes gastar o puntos de karma. Entonces, ya sabes, si haces una sugerencia estúpida, nadie pensará que eres estúpido, pero libera a todos los demás en el equipo para que den sus ideas porque saben que no pueden decir algo más estúpido de lo que acabas de decir, lo que luego saca muchas de sus ideas, facilita la colaboración y asegura que nadie tenga miedo de compartir lo que ellos creen que es una idea estúpida, pero que en realidad es una solución realmente buena y excelente para el problema que estás resolviendo. Ser el payaso funciona muy, muy bien.

Otra lección es que los ingenieros que llegan a ser líderes técnicos, ya sabes, son ingenieros fuertes, asumen mucha responsabilidad. Recuerdo haber leído un estudio que decía que sentirse responsable y sentir una cierta culpa, también he oído que se le llama culpa del líder técnico, es una señal de que tienes un gran potencial como líder técnico y como ingeniero de personal, etc., porque te enorgulleces mucho y asumes mucha responsabilidad y tratas de asegurarte de hacer mucho. Pero eso también es una trampa porque una vez que eres líder técnico, te conviertes en una especie de, entre comillas, responsable de la producción de todo el equipo. Es muy fácil caer en el papel de tratar de ser el héroe y decir, oh, mierda, eso no se hizo. Lo haré yo. Oh, esa otra cosa no se hizo. Lo haré yo. Oh, demonios. Este proyecto va mal. Lo haré yo. Oh, no, ese ingeniero está luchando. Voy a hacer una videollamada con él y ayudarlo a hacerlo. Si intentas hacer el trabajo de todo un equipo, te quemarás. Y he visto esto con muchos de mis amigos cuando eran gerentes principiantes, decían, genial, estoy gestionando un equipo de cinco personas. Y simplemente estaban haciendo el trabajo de cinco personas en lugar de delegar. Por lo tanto, es muy importante centrarse y pensar en hacer menos y permitir que tu equipo haga el trabajo. Estás ahí para ayudar al equipo a ser efectivo, no para hacer el trabajo del equipo por ellos.

4. The Role of a Tech Lead Continued

Short description:

Como líder técnico, enfócate en el resultado, no en cómo se realiza el trabajo. Muestra liderazgo y certeza al equipo, incluso si no estás seguro. Involucra al equipo en la planificación y toma de decisiones. Comprométete con un plan, pero deja espacio para la autonomía. Haz un plan basado en cómo interactuarán las diferentes piezas. Los líderes técnicos se enfocan más en la ingeniería que en la codificación.

Así que haz menos, permite que las personas luchen, que fracasen, que se caigan de bruces. Si no está funcionando, después de un día o dos, déjalos estar y luego pregúntales, `¿necesitas ayuda?` y luego intervén. Pero no tienes que, realmente, debes evitar conscientemente tratar de hacer el trabajo de todos y ceder tus Legos y permitir que otras personas brillen porque te prometo que todo saldrá bien incluso si no lo hacen de la manera en que tú lo harías, será bueno. Enfócate en el resultado, no en cómo se realiza el trabajo.

Y lo siguiente que surge de esto, como mencioné antes, es trabajar en hojas de ruta y cosas futuras. Se vuelve realmente confuso una vez que superas la etapa de ingeniero senior. Las empresas, resulta, y creo que esto es cierto en general para cualquier persona que haya ocupado un puesto de liderazgo, nadie sabe qué diablos está haciendo. Es como, oh Dios mío, tenemos tantas prioridades, tenemos tantos proyectos grandes, críticos e importantes. Si no hacemos esa cosa, la empresa fracasará. Si no hacemos esa otra cosa, el sistema explotará. Si no hacemos feliz a este cliente, se irá. Y hay tantas cosas críticas y urgentes que parecen ser la siguiente cosa en la que trabajar. Pero cuando estás presentando al equipo, debes mostrar liderazgo y sí.

Básicamente, es confuso allá arriba, pero lo que debes hacer por el equipo es tener ese sentido de liderazgo y casi actuar o presentar una apariencia de certeza. Incluso si no estás seguro de si tomaste la decisión correcta o si no estás seguro de si estás trabajando en lo correcto, una vez que llega al resto del equipo, una vez que la gente comienza a trabajar en ello, debes mostrar cierto nivel de certeza. Aunque en el fondo no estés seguro de si estás haciendo lo correcto o si no estás seguro de las decisiones técnicas que has tomado, simplemente tienes que seguir adelante y comprometerte con un camino. Analizas diferentes posibilidades, idealmente cuando estás haciendo planes para una historia específica, involucras a todos para que todo el equipo aporte ideas y luego cuando haya ideas en competencia, tu trabajo como líder técnico es decir, está opción es 60% mala, la otra opción es solo 50% mala, vamos con la opción del 50% y luego reevaluar si no está funcionando en las próximas horas o en los próximos días, dependiendo de cómo sean tus ciclos de historias. La idea es hacer un plan y comprometerse con él, no tratar de cambiar de opinión cada pocos segundos o cada vez que entran a una reunión y te preguntan, `oye, ¿cómo deberíamos hacer esto?` No cambies tu decisión o cambies todo tu enfoque. Pero también es muy importante, cuando estás haciendo un plan con tu equipo, dejar suficiente espacio para que el equipo tenga autonomía y para que todos sientan, no solo sientan, sino que tengan espacio para contribuir. No digas, `ok, para ese botón, debes ir a ese archivo, cambiarlo a morado, ve allí para cambiarlo, para cambiar dónde aparece.` No tienes que darles todos esos detalles. No tienes que, y no debes, dar todos los detalles a tu equipo sobre lo que están haciendo, porque entonces podrías hacerlo tú mismo. Es más como, `ok, tú encárgate del botón, asegúrate de que esté en el lugar correcto.` Este es el lugar donde queremos que esté. Tú encárgate de la API, construye la API del backend para esto. Tú trabaja en la capa intermedia donde el botón se comunica con la API, y luego cuando lo tengamos todo junto, vamos a descubrir cómo ensamblarlo. Haz un plan más basado en cómo las diferentes piezas móviles se comunicarán en lugar de cuáles serán las piezas móviles reales y luego permite que tu equipo se enfoque en el interior de cada pieza móvil individual y descubra cómo construir la implementación en sí misma.

Lo cual me lleva a mi siguiente punto, que como líder técnico, lo que puedes hacer es mucho más ingeniería y mucho menos codificación. Y esto es una de esas cosas que me llevó mucho tiempo darme cuenta de la diferencia entre codificación e ingeniería.

5. Explaining the Role of a Tech Lead

Short description:

Cuando estás ingenierizando, puedes trabajar con una pizarra blanca o una pizarra virtual para entender las piezas móviles y cómo deben interactuar. El rol del líder técnico es enfocarse en la ingeniería y dejar que el equipo maneje los detalles de codificación. Es importante hacer buenas preguntas y guiar al equipo para entender cómo debería encajar todo el sistema. Optar por un puesto de liderazgo técnico puede ser divertido y te permite trabajar en desafíos interesantes y enfocarte en aspectos de nivel superior.

Y la mejor manera que tengo de explicar la diferencia es que cuando estás ingenierizando, puedes trabajar con una pizarra blanca, o una pizarra virtual, o incluso notas adhesivas, y simplemente puedes dibujar círculos, cuadrados, flechas y cosas así en una pizarra de algún tipo, o en notas adhesivas, y descubrir cuáles son las piezas móviles, cómo deben interactuar, cómo deberías, ya sabes, gran parte de esto es modelado de dominio, cómo deberías descomponer un problema, cuáles son los pasos que nos llevarán desde una solución inicial y valiosa hasta la solución completa, así como cómo pasar de una patineta a un automóvil, lo cual es una analogía para un vehículo en movimiento o un transportador de personas, comienzas con una patineta, terminas con un automóvil, ¿y cuáles son los pasos que te llevan allí? ¿Cuáles son incluso todos los pasos en un proceso empresarial que las personas están realizando, y cómo puedes convertir eso en código software, y básicamente en software. El rol del líder técnico es hacer mucho de esa descomposición y menos de la implementación final real y la codificación. Es importante que aún te mantengas en el código, y que hagas el trabajo, y que estés involucrado con el equipo. Pero en lo que te enfocas día a día es mucho más en la ingeniería, y luego permites que el resto de tu equipo descubra los detalles de codificación de manera independiente, donde construyen la implementación real.

Esto es una de esas cosas que es realmente difícil de explicar hasta que lo has intentado, pero una vez que lo entiendes, se siente muy liberador. Porque, al menos para mí personalmente, después de haber estado codificando durante 25, 26 años, ha sido mucho tiempo. Lo que me di cuenta es que cuanto más de estos sistemas construyes, más ves la filosofía y la estructura detrás del código real. Y luego puedes, en tu cabeza o en una pizarra o con tu equipo, mover las piezas y descubrir cómo deberían ser y cómo encajan sin siquiera saber o preocuparte por la implementación final de esas piezas, porque entonces los ingenieros senior y los de nivel medio y los juniors y todos los demás pueden trabajar en la implementación real después de que se haya hecho la parte de ingeniería general. Y además, ya sabes, es realmente divertido codificar. Personalmente, todavía me involucro en muchas de las piezas móviles, pero encuentro que soy mucho más efectivo y tengo un impacto mucho mayor y es mucho más útil para mi equipo si me enfoco en las partes de ingeniería y los ayudo a razonar sobre las partes de ingeniería. Ya sabes, a veces solo se trata de hacer buenas preguntas cuando tienes ingenieros senior realmente fuertes que son realmente buenos pero que solo necesitan un poco de orientación, puedes hacerles preguntas específicas para guiarlos en una cierta dirección y ayudarlos a descubrir cómo debería encajar todo el sistema. Y, ya sabes, en general, definitivamente recomendaría optar por un puesto de liderazgo técnico y seguir ese camino. Honestamente, ha sido la experiencia más divertida que he tenido con la codificación y la ingeniería de software en mucho tiempo. A veces se siente un poco abstracto y parece que estás alejado de la implementación, pero por otro lado, ya no tienes que hacer las partes que parecen aburridas. Es realmente agradable trabajar en nuevos desafíos interesantes y enfocarse más en las cosas de nivel superior y descubrir qué viene a continuación, qué hacer en el futuro, qué partes de los proyectos se pueden intercambiar. Oye, ¿sabes qué? Hay mucho trabajo que no necesitamos hacer ahora mismo. Si invertimos el orden del plan, obtendremos mucho más valor de manera más rápida y aún así lograremos hacer todo al final. Personalmente, encuentro que eso es mucho más divertido que simplemente golpear un teclado y, ya sabes, discutir en Internet sobre la mejor manera de escribir un bucle for en JavaScript. Así que sí, si tienes la oportunidad, pruébalo. Definitivamente es interesante. Y abre un mundo completamente nuevo de posibilidades y un nuevo mundo de ingeniería de software que como ingeniero senior, tal vez

6. Resultados de la encuesta y la ingeniería vs. la arquitectura

Short description:

Los resultados de la encuesta muestran que convertir problemas difusos en soluciones concretas es la parte más interesante de la ingeniería de software. También se aprecia la depuración y la curiosidad por entender cómo funcionan las cosas. La diferencia entre la ingeniería y la codificación radica en resolver problemas difusos e implementar soluciones. La arquitectura puede volverse problemática cuando se vuelve demasiado abstracta y pierde contacto con la parte de codificación, lo que resulta en problemas de implementación.

ni siquiera te diste cuenta de que estaba ahí. Gracias. Bueno, bienvenido. ¿Cómo estás hoy? Estoy muy bien. Sí, únete a nuestro escenario virtual. Sí, es muy cómodo aquí arriba. Sí, muchas gracias por estar aquí y por compartir tus experiencias. Me encantaría profundizar en algunas preguntas contigo ahora. Pero primero, quiero discutir las respuestas a tu pregunta de la encuesta. Entonces la pregunta, ya sabes, ¿cuál es la parte más interesante y divertida de la ingeniería de software? El 60% dijo que convertir problemas difusos en soluciones concretas. El 24% dijo, hmm, eso es extraño. ¿Por qué hizo eso? Esa fue mi elección, personalmente. El 16% dijo escribir código, y en realidad, estoy sorprendido personalmente de que el 0% dijera debatir entre tabulaciones y espacios, punto y coma o no, VIM o Emacs, considerando cuántos tweets veo sobre esos temas. Pero ¿qué opinas de estos resultados? ¿Te sorprenden? Sí, son un poco sorprendentes. Bueno, ahí vamos. Tenemos a alguien que responde que le gusta el debate entre tabulaciones y espacios. Ahí vamos. Pero sí, estoy de acuerdo, para mí, resolver problemas difusos también es la parte más divertida. Así que estoy feliz de que otras personas también estén de acuerdo. Genial. Y me alegra que todavía haya amor por la depuración y No, iba a decir, si conoces ese chiste de cuando un no ingeniero presiona un botón y le electrocuta, dicen: `Oh, mierda, no lo volveré a hacer`. Cuando un ingeniero presiona ese botón, dicen: `Me pregunto si me electrocuta cada vez que lo presiono`. Exactamente. Sí, nos gusta desmontar las cosas y ver cómo funcionan y luego, con suerte, poder volver a armarlas. Pero si no, ya sabes, está bien también. Así que genial.

Entonces, bien. Entonces, la primera pregunta aquí del público es, dice, haces un punto interesante sobre la ingeniería versus la codificación, y luego usan el término arquitectura específicamente, ¿qué consideras que son las diferencias entre la ingeniería y la arquitectura? Entonces, creo que la diferencia entre la ingeniería y la codificación radica principalmente en que cuando estás ingenierizando, principalmente te ocupas de resolver los problemas difusos y crear sus soluciones. La codificación es como la parte de implementación del proceso de ingeniería. Por lo general, en estos días hacemos ambas cosas de manera paralela y simultánea. Y luego, si pasas a la arquitectura, creo que muchos, donde muchos arquitectos tienen problemas es que si te vuelves demasiado abstracto, pierdes la parte de codificación y comienzas, creo que probablemente todos hemos experimentado a los llamados astronautas de la architecture que tienen una solución realmente genial en papel, grandes diagramas, grandes esquemas. Ahora solo falta que alguien vaya e implemente y escriba la primera línea de código y todo se desmorona porque alguna suposición básica no funciona. Así que creo que la ingeniería es como el punto óptimo entre ellos, donde estás haciendo la cantidad justa de arquitectura para pensar en soluciones de una manera ligeramente más abstracta, pero aún estás haciendo suficiente parte de codificación para ensuciarte las manos y, ya sabes, implementar esas soluciones y ver cómo funcionan y poder adaptarlas en tiempo real.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

React Summit 2022React Summit 2022
27 min
Impact: Growing as an Engineer
Top Content
Becoming a web engineer is not easy, but there are tons of resources out there to help you on your journey. But where do you go from there? What do you do to keep growing, and to keep expanding the value you bring to your company? In this talk we’ll look at the different kinds of impact you can have as a web engineer. We’ll walk through what it means to take on bigger, more complex projects, and how to scale yourself, and grow the community around you. By driving our own development we can all grow our impact, and in this talk, we’ll discuss how to go about this.
10 min
Emma Bostian: I landed my dream job by sharing my blogs on Twitter
Top Content
Featured Article
Software engineer, lecturer, podcast host, author — is there something Emma Bostian hasn't done? She moved from America to Sweden, started working at Spotify, and took up a few challenges along the way. And now she has some career tips to share.

What led you to software engineering? 
I was raised in the ecosphere of tech because my dad is a software engineer at IBM, and my mom was a designer there, too. My dad always encouraged me to join STEM and take a look at computer science — however, I was convinced I wanted to be a medical doctor. In my first year of college, I declared a biology major and quickly realized I was not too fond of it. In my second semester, I switched to an actuarial science major where I took Introduction to Computer Science, and the rest is history. In my second year of college, I declared a computer science major and began my journey from there.
What is the most impactful thing you ever did to boost your career?
Writing blog posts and documenting my learning journey on Twitter has far been the best career boost. I wrote purely for myself to reference the things I learned over time, and I even utilized my design skills in Figma to create custom graphics depicting difficult concepts like CSS specificity. By sharing my blogs on Twitter and engaging with the people reading them, I was able to grow an audience extremely quickly. I began receiving conference speaking opportunities, podcast requests, and course invitations to teach with LinkedIn Learning and Frontend Masters.
Ultimately, I landed my job at Spotify through Twitter, too, when a friend and follower of mine asked if I would be interested in interviewing. Now I live in Stockholm working my dream job. It still blows my mind how tweeting about my blog led me to some of the most amazing career opportunities.
What would be your three tips for engineers to level up their career? 
First, be patient. I often see posts on Twitter or LinkedIn about developers who were promoted to a senior position after a year. And while this is wonderful, I think we forget that each company has a different standard for what constitutes a senior developer, and everyone's journey will be different.
Second, don't be afraid to ask questions. If you try your best to solve a problem or answer a question you have, but you can't figure it out after a reasonable amount of time, ask a team member or mentor for help.
And lastly, invest in the right resources for learning. When I started my journey, I didn't know which platforms worked for me to learn. Now, I have a few trusted platforms such as Frontend Masters, Free Code Camp, or Level Up Tutorials that I go to when I need to learn a new skill.
You're currently working as a software engineer at Spotify. What does a typical day of yours look like there?
I begin my day answering emails. Then we have a team breakfast and a standup remotely as we're all still remote at Spotify. After that, we might have a web tech sync with the other squads in our business unit. The day usually includes some form of pair or mob programming, depending on the work stream. 
My team always has Fika, a traditional Swedish coffee break, scheduled every afternoon. Every couple of Fridays, we have team games planned to release some stress. 
Also, I tend to have a lot of free time to focus, which is nice but makes for a boring answer to this question!
Do you have some rituals or tools that keep you focused and goal-oriented?
I'll admit that I've been struggling with staying motivated in the time of remote work. I've been remote with Spotify since onboarding a year ago, but my team is wonderful, and they help me when I'm down.
Apart from that, I use Todoist to keep track of my tasks, and, naturally, I listen to Spotify while working. But other than that, not really. Maybe I should adopt some new tools to keep me on track!
My current favorite Spotify playlist is Brand New Chill: https://open.spotify.com/playlist/37i9dQZF1DX6uQnoHESB3u?si=380263b3c853442e
I also love Chillout Daily: https://open.spotify.com/playlist/7ozIozDp260fjNOZy1yzRG?si=66d6c839ec9b458a
You wrote a book called De-coding the Technical Interview. What was the impulse to do it?
I wanted to give the community a manual of the essentials of computer science knowledge to ace the technical interviews. The book covers data structures like stacks, queues, or linked lists, tackles algorithms, and deals with systems design. You'll also learn about the interview process from start to finish, get tips on how to submit an amazing take-home project, or understand how to problem solve. You'll also gain knowledge on the frontend coding skills needed to excel at a frontend interview.

If you could stress one piece of advice on surviving a technical interview, which would it be?
Do not lie your way through an interview. If you don't know the answer to something, just admit it. There's no shame in admitting you don't know the answer to something. There is shame in faking it and pretending like you do know the answer.
What's the single best practice everyone who writes code should follow?
Remember that while you are technically writing code for computers, you're also writing it for humans. Your code should be readable and have as little complexity as possible without sacrificing accessibility or performance.
In addition to the book, you co-host the Ladybug Podcast. What inspired you to enter this field, and what are the podcast's main topics?
We talk about everything tech and career on the podcast, from Java and GraphQL to how to start a business and cross-cultural communication. The podcast is a way for me and my co-hosts to share our experiences in tech, having taken different paths. And I'm really glad for doing it — it has allowed me to meet so many incredible people, learn many new things, and support my dream of teaching.
What pieces of your work are you most proud of?
My technical interview book was a huge feat for me as well as my courses with LinkedIn Learning on building a tech resume. I enjoy creating things that help other people advance their careers, so I'm also proud of my courses with Frontend Masters on design systems and CSS.
***
Follow Emma on Twitter
14 min
Kent C. Dodds: Consume, build, and teach — and level up your career
Top Content
Featured Article
Even though his bio offers quite a hefty reading, he only applied for one job in his career. The rest came along as he was building his name as a renowned speaker, teacher, and a prolific figure of the open-source community. How did Kent do it? “Commit to creating high-quality content,” he says.


What led you to programming?
I had a friend when I was a teenager who was really into it, and he tried to teach me. But I just couldn't get it — it didn't make any sense to me. So I never really thought I'd get into programming, but I liked computers a lot, and I ended up going to school for electrical engineering. 
Well, that didn't work because I'm not good at math. But right when I started the program, I got a job at a company uploading videos to YouTube and that sort of thing. The work was tedious, so I decided to write a computer program to automate lots of the work I was doing with the knowledge I had about programming. And that was the first spark of things for me to use programming to solve real-world problems. 
What is the most impactful thing you ever did to boost your career? 
Committing to creating high-quality content. That might sound obvious because I'm a full-time educator now, but I would not have gotten my job at PayPal if I hadn't been so active with my blog. In fact, lots of my jobs came out of me being involved in the community around meetups, conferences, or open-source projects. 
How do you choose topics for the content you create, be it for your blog or podcast?
I don't think too much about the content other people are creating. And I don't often consume it. My ideas come from the things that I'm working on, things that I'm learning myself, or — when I was working with a team of developers — the things that I had to remind people of in code reviews regularly. Anytime that I would have a code review comment that was pretty long to describe my position, that was an excellent opportunity for a blog post. Also, if people ask me about a topic regularly, I'll make a blog post rather than answer that question multiple times.


What would be your three tips for engineers to level up their career? 
The number one thing I tell people is to be a nice person. I know that sounds fluffy or silly, but it cannot be overstated. You will get so much further in your career and just in life in general if you're a nice person. That doesn't mean that you take people being jerks lying down, but how you interact with others is out of kindness. You could be the best engineer in the entire world, but if you're not a nice person, you will not reach your full potential or accomplish your goals, whatever they may be.
Second, it's just as important to decide what you are not going to learn as it is to decide what you are going to learn. You could jump into countless things — and there are successful people who are polyglot programmers, but I can't speak to that a whole lot. All I can tell you is that in my experience, focusing on specific things that I want to be truly good at has worked out great for my career. That doesn't mean that I closed myself off to other things. With my website rewrite, I have been doing a lot of dev ops-related work and a lot of back-end stuff that I've typically not been involved in. You want to keep your head up on what's going on outside of what you're doing so that you know what direction to go in when you come across problems you need to solve. However, finding a focus on what you want to be good at has helped me a lot. That way, you feel a little less stressed.
And the third one? 
Learn how to learn effectively. It's a three-step process: you consume, build, and teach. The consumption of newsletters and Twitter and whatever inspires you, but you don't want to spend too much time doing that — implementing it into actually building something matters. This happens naturally if you work at a company, but maybe you're not making the things you want to learn, so you may want to start a side project. The building phase is where you get experience, but you also want to solidify that experience. How? You start teaching. You don't necessarily have to teach it to people, it could be stuffed animals. The goal of the teaching is to retain in your mind what you've learned through the building process.
What are you working on right now? 
The big thing I'm working on right now is a rewrite of my website. It'll be much more than just a developer portfolio — I'll have user accounts, and there'll be fun things that you can do with it. And because it's more than just a website, I'm using Remix, a new cool framework in the React ecosystem. I'm also working on updating my material on TestingJavaScript.com and a TypeScript course as well. 
So, whatever I'm working on, it ends up resulting in lots of opportunities for content.


Do you have some rituals that keep you focused and goal-oriented? 
I have a notepad where I keep all of my notes of what I'm going to do for the day so that when I'm checking things off, I'm not distracted notifications. I've tried apps for that, and that does not work well for me. 
I also am a firm believer in inbox zero. I have my work inbox and my personal inbox, and I keep them both at zero. And I kind of use that as a to-do list. 
And if I'm not feeling excited about working for some reason, I will often hop on my Onewheel, which is an electric skateboard that only has one giant wheel in the middle. It's just a total blast, and I'll hop on that with my backpack and a charger, and I'll go to a Starbucks or a park just to declutter my mind.
What things in the React universe are you excited about right now?
React version 18 is coming out soon. The experimental version is out there, and it's fun to play with. I'm just really thrilled that it's no longer a concurrent mode but concurrent features that you can opt into. Cool things like that will enable React server components in the future. 
But the biggest thing I'm excited about is Remix. That's huge. It eliminates a lot of problems that are solved well other tools, but when I'm using Remix, I don't have those problems, so I don't need those clusters.
You already said that teaching is an integral part of the learning process, and you stand your word since you're also a full-time educator. What inspired you to enter this field?
I have been a teacher for as long as I can remember. I grew up in a church where you talk in front of your peers from a very young age, and my mom was an elementary school teacher, so teaching has just always been a part of me. 
I really just enjoy sharing what I'm learning with others. As far as teaching technical topics, I gave my first workshop when I was still a student at Brigham Young University. With my fellow, we taught how to use AngularJS, and I got Firebase to sponsor pizza so they would show up, and that was pretty fun.
Then I started teaching on the side at egghead.io right after I'd graduated. That was when I first got a paycheck for teaching. And I realized that teaching could be quite lucrative and support my family and me as a full-time endeavor. So I did it — I quit my job. I'm a very risk-averse person, so I'd done teaching as a side hustle for four years just to verify that I could make this work.
When TestingJavaScript was released, and I got that paycheck, I realized that I didn't need my PayPal salary anymore. I could just focus my daytime on teaching and give my evenings back to my family, which was a nice trait.


Apart from that, how has teaching impacted your career? 
Earlier I mentioned that pretty much all of my jobs came because I was perceived as an expert. After the first job, where I was an intern and then converted into full-time, I never applied to another. I worked for four different companies, and they wouldn't have recruited me if they didn't know who I was and what I was doing. My content is how they knew who I was — I just made it easy for them to find me. Teaching made that impact. It made my career. 
We talked about React and Remix. Are there any other open-source projects that you'd recommend keeping an eye on or contributing to?
I have some myself. React Testing Library is probably the biggest one that people are familiar with. And if React isn't your jam, then other framework versions of the testing library. 
React Query is also really popular. If you're using Remix, you don't need it, but if you're not, I strongly advise using React Query cause it's a stellar, fantastic library, and Tanner Linsley, the creator, is a stellar and fantastic person. 
What pieces of your work are you most proud of? 
Probably the biggest thing I've ever done is EpicReact.Dev. It has helped tens of thousands of people get really good at React, improve their careers and make the world a better place with the skills that they develop. My whole mission is to make the world a better place through quality software, and I feel like I've done that best with Epic React. 
There are things that I've built at other companies that are still in use, and I'm proud of those cause they've stood the test of time, at least these last few years. But of everything, I think Epic React has made the biggest impact.
***
Follow Kent on Twitter and listen to his favorite Spotify playlist
TechLead Conference 2023TechLead Conference 2023
36 min
Effective Communication for Engineers
Your communication skills affect your career prospects, the value you bring to your company, and the likelihood of your promotion. This session helps you communicate better in a variety of professional situations, including meetings, email messages, pitches, and presentations.
TechLead Conference 2023TechLead Conference 2023
31 min
Imposter Syndrome-Driven Development
“Maybe I’m fooling everyone… I’m not good enough for this, and at this point, it is a question of time until everyone figures it out” these might be the words that cross your mind as your coworker compliments you for doing another fantastic job at delivering a new feature. As you grow in your career, so does your uncertainty. You put in the extra hours, learn all the new technologies, and join all the initiatives you can, but at the end of the day, it never feels enough. At this point, that feeling is leading your actions and decisions. It is the thing that is driving your career. Only one question persists: Are you really an imposter?
6 min
Charlie Gerard's Career Advice: Be intentional about how you spend your time and effort
Featured Article
When it comes to career, Charlie has one trick: to focus. But that doesn’t mean that you shouldn’t try different things — currently a senior front-end developer at Netlify, she is also a sought-after speaker, mentor, and a machine learning trailblazer of the JavaScript universe. "Experiment with things, but build expertise in a specific area," she advises.

What led you to software engineering?My background is in digital marketing, so I started my career as a project manager in advertising agencies. After a couple of years of doing that, I realized that I wasn't learning and growing as much as I wanted to. I was interested in learning more about building websites, so I quit my job and signed up for an intensive coding boot camp called General Assembly. I absolutely loved it and started my career in tech from there.
 What is the most impactful thing you ever did to boost your career?I think it might be public speaking. Going on stage to share knowledge about things I learned while building my side projects gave me the opportunity to meet a lot of people in the industry, learn a ton from watching other people's talks and, for lack of better words, build a personal brand.
 What would be your three tips for engineers to level up their career?Practice your communication skills. I can't stress enough how important it is to be able to explain things in a way anyone can understand, but also communicate in a way that's inclusive and creates an environment where team members feel safe and welcome to contribute ideas, ask questions, and give feedback. In addition, build some expertise in a specific area. I'm a huge fan of learning and experimenting with lots of technologies but as you grow in your career, there comes a time where you need to pick an area to focus on to build more profound knowledge. This could be in a specific language like JavaScript or Python or in a practice like accessibility or web performance. It doesn't mean you shouldn't keep in touch with anything else that's going on in the industry, but it means that you focus on an area you want to have more expertise in. If you could be the "go-to" person for something, what would you want it to be? 
 And lastly, be intentional about how you spend your time and effort. Saying yes to everything isn't always helpful if it doesn't serve your goals. No matter the job, there are always projects and tasks that will help you reach your goals and some that won't. If you can, try to focus on the tasks that will grow the skills you want to grow or help you get the next job you'd like to have.
 What are you working on right now?Recently I've taken a pretty big break from side projects, but the next one I'd like to work on is a prototype of a tool that would allow hands-free coding using gaze detection. 
 Do you have some rituals that keep you focused and goal-oriented?Usually, when I come up with a side project idea I'm really excited about, that excitement is enough to keep me motivated. That's why I tend to avoid spending time on things I'm not genuinely interested in. Otherwise, breaking down projects into smaller chunks allows me to fit them better in my schedule. I make sure to take enough breaks, so I maintain a certain level of energy and motivation to finish what I have in mind.
 You wrote a book called Practical Machine Learning in JavaScript. What got you so excited about the connection between JavaScript and ML?The release of TensorFlow.js opened up the world of ML to frontend devs, and this is what really got me excited. I had machine learning on my list of things I wanted to learn for a few years, but I didn't start looking into it before because I knew I'd have to learn another language as well, like Python, for example. As soon as I realized it was now available in JS, that removed a big barrier and made it a lot more approachable. Considering that you can use JavaScript to build lots of different applications, including augmented reality, virtual reality, and IoT, and combine them with machine learning as well as some fun web APIs felt super exciting to me.


Where do you see the fields going together in the future, near or far? I'd love to see more AI-powered web applications in the future, especially as machine learning models get smaller and more performant. However, it seems like the adoption of ML in JS is still rather low. Considering the amount of content we post online, there could be great opportunities to build tools that assist you in writing blog posts or that can automatically edit podcasts and videos. There are lots of tasks we do that feel cumbersome that could be made a bit easier with the help of machine learning.
 You are a frequent conference speaker. You have your own blog and even a newsletter. What made you start with content creation?I realized that I love learning new things because I love teaching. I think that if I kept what I know to myself, it would be pretty boring. If I'm excited about something, I want to share the knowledge I gained, and I'd like other people to feel the same excitement I feel. That's definitely what motivated me to start creating content.
 How has content affected your career?I don't track any metrics on my blog or likes and follows on Twitter, so I don't know what created different opportunities. Creating content to share something you built improves the chances of people stumbling upon it and learning more about you and what you like to do, but this is not something that's guaranteed. I think over time, I accumulated enough projects, blog posts, and conference talks that some conferences now invite me, so I don't always apply anymore. I sometimes get invited on podcasts and asked if I want to create video content and things like that. Having a backlog of content helps people better understand who you are and quickly decide if you're the right person for an opportunity.What pieces of your work are you most proud of?It is probably that I've managed to develop a mindset where I set myself hard challenges on my side project, and I'm not scared to fail and push the boundaries of what I think is possible. I don't prefer a particular project, it's more around the creative thinking I've developed over the years that I believe has become a big strength of mine.***Follow Charlie on Twitter

Workshops on related topic

Node Congress 2022Node Congress 2022
39 min
How To Design A Sustainable Freelance/Contracting Career
WorkshopFree
Ready to kickstart your freelance career or just getting started on your freelance journey? You’re in the right spot. Learn the tricks of the trade from the industry’s most experienced freelancers.
The independent talent movement is the future of work. If you’re considering leaving full-time employment for a career as a freelancer, now is the time to find your successful space in the independent talent workforce. More people are working freelance today than ever before, with the freelance marketplace now contributing $1.2 trillion to the US economy. Some of the most in-demand roles for freelancers right now are senior developers with professional experience in React, Python, Blockchain, QA, and Node.js.
This workshop will help you design a sustainable and profitable full-time (or part-time) freelancing/contracting career. We will give you tools, tips, best practices, and help you avoid common pitfalls.
React Summit 2022React Summit 2022
75 min
How To Design A Sustainable Freelance/Contracting Career + Speedcoding Challenge
WorkshopFree
Ready to kickstart your freelance career or just getting started on your freelance journey? You’re in the right spot. Learn from the world’s largest fully distributed workforce in the world.
The independent talent movement is the future of work. If you’re considering leaving full-time employment for a career as a freelancer, now is the time to find your successful space in the independent talent workforce. More people are working freelance today than ever before, with the freelance marketplace now contributing $1.2 trillion to the US economy. Some of the most in-demand roles for freelancers right now are senior developers with professional experience in React, Python, Blockchain, QA, and Node.js.
This workshop will help you design a sustainable and profitable full-time (or part-time) freelancing/contracting career. We will give you tools, tips, best practices, and help you avoid common pitfalls.
At the end of the workshop there will be a Q&A session with a Freelance Developer who can answer your questions and provide insights and tips into their own success.
During the Workshop break, we will be running a speed-coding challenge! At the end of the workshop, we will award a prize for the winner and display the leaderboard.
We will have you login to our portal and complete the challenge as fast as you can to earn points. Points are assigned based on difficulty and the speed at which you solve the tasks. In case you complete all tasks, you get extra points for the remaining time. You’ll see your score, ranking, and the leaderboard once you complete the challenge.
We will be giving away three Amazon Gift Cards ($200, $100, $75) for the top three winners.
React Advanced Conference 2021React Advanced Conference 2021
145 min
Designing A Sustainable Freelance Career
WorkshopFree
Would you like to pursue your passions and have more control over your career? Would you like schedule and location flexibility and project variety? Would you like the stability of working full-time and getting paid consistently? Thousands of companies have embraced remote work and realize that they have access to a global talent pool. This is advantageous for anyone who has considered or is currently considering freelance work.>> Submit your interest on becoming a freelance engineer with Toptal and get a call with Talent Acquisition specialist <<

Freelancing is no longer an unstable career choice.

This workshop will help you design a sustainable and profitable full-time (or part-time) freelancing career. We will give you tools, tips, best practices, and help you avoid common pitfalls.
Table of contents

Module 1: Dispelling common myths about freelancing
Module 2: What does freelancing look like in 2021 and beyond
Module 3: Freelancing choices and what to look for (and what to avoid)
Module 4: Benefits of freelancing from a freelancer + case study
BREAK
Module 6: How to get started freelancing (experience, resume, preparation)
Module 7: Common paths to full-time freelancing
Module 8: Essentials: setting your rate and getting work
Module 9: Next steps: networking with peers, upskilling, changing the world
Module 10: Freelancer AMA
React Summit Remote Edition 2021React Summit Remote Edition 2021
121 min
Landing Your Next Developer Job
WorkshopFree
Renaud Bressant (Head of Product), Nathanael Lamellière (Head of Customer Success and Solution Engineer), Nouha Chhih (Developer Experience Manager) will be looking at the different developer jobs that you can accounter when looking for your next developer role. We'll be explaining the specifics of each role, to help you identify which one could be your next move. We'll also be sharing tips to help you navigate the recruitment process, based on the different roles we interviewed for as recruiters, but also as candidates. This will be more of an Ask Us Anything session, so don't hesitate to share your thoughts and questions during the session.