23 trayectorias profesionales alternativas en las que los desarrolladores de software pueden crecer

Durante los últimos cinco años, he dado decenas de conferencias como invitado en muchos de los campamentos de programación en Chicago.

Algunas preguntas nunca dejan de surgir: "¿Qué idioma debo aprender a continuación?", "¿Cómo puedo prepararme para las entrevistas técnicas?", "¿Está contratando?"

Pero una pregunta que me desconcertó fue: "¿Qué pasa si no quiero ser desarrollador de software?"

He estado pensando mucho en esto últimamente. Después de casi una década liderando equipos de ingeniería y productos, me di cuenta de que estaba listo para un nuevo desafío, así que este verano comencé a escribir técnicas independientes. No lo sabía cuando obtuve mi primer cliente, pero rápidamente me di cuenta de que la redacción técnica es una de las muchas carreras válidas para los ex ingenieros de software .

¿Qué más pueden hacer los desarrolladores de software?

Este descubrimiento me hizo pensar: "¿Qué otros trabajos pueden hacer los ingenieros de software además de escribir software?"

La lista es sorprendentemente larga.

Esta publicación recorrerá muchas de las carreras disponibles para los desarrolladores de software, especialmente los graduados recientes de bootcamp. Explicaré lo que hace cada trabajo, cómo puede poner su pie en la puerta y las perspectivas a largo plazo.

Ya sea que esté buscando una carrera alternativa porque no ha encontrado un trabajo como ingeniero o porque se dio cuenta de que el desarrollo de software no era para usted, esta guía lo ayudará a encontrar una carrera que se ajuste a sus habilidades.

Trayectorias profesionales alternativas para desarrolladores de software

Roles orientados al cliente

Si bien los ingenieros de software se benefician de tener habilidades con las personas, algunos graduados de bootcamp con los que he hablado no están ansiosos por sentarse en silencio y escribir código todo el día. Si desea una trayectoria profesional que brinde más oportunidades para interactuar con las personas, estos trabajos pueden ser adecuados para usted.

1. Relaciones con el desarrollador, promoción o evangelización

A medida que más empresas se esfuerzan por establecer relaciones con los desarrolladores que son sus clientes, usuarios o defensores, el campo de las relaciones con los desarrolladores está creciendo rápidamente.

Los profesionales de relaciones con los desarrolladores (algunas empresas los llaman defensores de los desarrolladores, evangelistas de los desarrolladores, administradores de la comunidad o "DevRels") ayudan a establecer y construir una comunidad en torno al software de su empresa.

A menudo participan en la creación de aplicaciones de demostración, redacción de publicaciones en blogs, charlas en conferencias y administración de cuentas de redes sociales para empresas centradas en la tecnología. Muchas de las empresas de tecnología de renombre (Facebook, Google, Amazon, etc.) contratan equipos de profesionales de relaciones con desarrolladores.

Si está interesado en este campo, lea lo que están haciendo Mary Thengvall y PJ Hagerty. Son dos de mis influencers favoritos en el espacio y publicaron juntos el podcast Community Pulse.

2. Marketing para desarrolladores

Si bien existe cierta superposición con las relaciones con los desarrolladores, el marketing de desarrolladores se centra más en el exterior.

El marketing dirigido a los desarrolladores es especialmente complicado porque no nos gusta que nos vendan, por lo que muchas de las tácticas de marketing más agresivas que funcionan para otros mercados son tabú aquí. Como persona con experiencia técnica, comprenderá naturalmente la forma en que piensan los desarrolladores y tendrá más influencia que la que tendría un comercializador tradicional.

SlashData publica una gran cantidad de contenido excelente sobre marketing de desarrolladores, incluido un libro sobre el tema en 2018. Si desea comenzar en este campo, aprenda marketing en línea: SEO, redes sociales, marketing de contenido, marketing de influencia, etc. Puede practicar muchas de estas habilidades en su blog para demostrar sus conocimientos antes de postularse a un empleo.

3. Ingeniero de ventas

Muchos ingenieros se desaniman por cualquier trabajo con "ventas" en el título, pero eso es solo porque todos nos hemos encontrado con malos vendedores.

La verdad es que todo el mundo está en ventas. Ya sea que se esté "vendiendo" a sí mismo como candidato a un puesto de trabajo durante el proceso de entrevista o abogando por un nuevo marco en su equipo de ingeniería, las ventas significan hacer coincidir las necesidades del cliente con la solución adecuada.

Los ingenieros de ventas son únicos porque tienen cierto nivel de experiencia técnica. Esta puede ser una combinación excelente para los desarrolladores que no quieren escribir código todo el día pero entienden la ingeniería de software.

La otra parte buena de las ventas es que no necesita ninguna certificación especializada para hacerlo. Hubspot ofrece una excelente introducción a algunas habilidades y recursos con los que puedes comenzar. A medida que más empresas desarrollen herramientas de software y servicios para ingenieros, es probable que los ingenieros de ventas tengan aún más demanda en la próxima década.

4. Reclutador técnico

Otra profesión que tiene mala reputación entre los ingenieros de software es la contratación técnica.

Conocí a algunos reclutadores de tecnología honestos y genuinos (Taylor Dorsett y Matt Hoffman de mi ciudad natal de Chicago, por ejemplo), pero también conocí a algunos reclutadores horribles e despistados que se concentran exclusivamente en buscar candidatos para alcanzar su cuota. .

La buena noticia es que con experiencia en desarrollo de software, tendrá más empatía y credibilidad que muchos otros reclutadores técnicos. Al igual que las ventas, este campo requiere una personalidad más extrovertida y centrada en las relaciones, pero no requiere certificaciones o cursos especializados.

Desafortunadamente, muchos de los trabajos de nivel de entrada en contratación de tecnología se encuentran en empresas de baja calidad, así que asegúrese de verificar su reputación en Glassdoor antes de presentar su solicitud.

Roles del producto

Si desea permanecer en el equipo de producto, pero no está seguro de querer ser un desarrollador de software, hay muchos campos a los que puede realizar la transición. Estos roles trabajan en estrecha colaboración con los ingenieros, por lo que su conocimiento de codificación lo ayudará, pero también requieren otros conocimientos especializados.

5. Ingeniero de control de calidad o pruebas

Si bien existen diferencias sutiles entre el aseguramiento de la calidad y los ingenieros de pruebas, ambos se ocupan de probar el software antes de que entre en funcionamiento.

Si tiene buen ojo para los detalles y le gusta idear formas creativas de automatizar tareas repetitivas, esta podría ser una excelente carrera profesional. Es probable que requiera algo de codificación, así como un trabajo de prueba manual.

Las empresas más pequeñas hacen que sus ingenieros de software prueben el código de los demás, por lo que los roles dedicados de prueba y control de calidad son más comunes en las grandes organizaciones. Hay mucha variación entre la forma en que las empresas realizan las pruebas, así que asegúrese de preguntar sobre las herramientas que utilizan, qué tan automatizadas son sus pruebas y cuánto implicará su función en las pruebas manuales y las automatizadas.

6. Analista de negocios

En el otro extremo del ciclo de vida del desarrollo de productos se encuentran los analistas comerciales. Por lo general, funcionan como un puente entre los equipos comerciales y técnicos para garantizar que se comprendan los requisitos, las limitaciones y los plazos. También pueden participar y ayudar con las pruebas y el control de calidad, según la estructura del equipo, por lo que deben tener una amplia gama de conocimientos sobre el producto.

Si tiene experiencia en negocios, desarrollo de productos o diseño y algunas habilidades de codificación, puede calificar para un puesto de analista de negocios de nivel de entrada. Si no es así, le recomiendo buscar algunos cursos en línea para ayudarlo a desarrollar una comprensión básica del rol y lo que implica.

7. Director de proyectos

Al igual que los analistas comerciales, los gerentes de proyectos deben comprender los requisitos comerciales y las limitaciones técnicas de sus productos.

La diferencia clave es que los gerentes de proyectos suelen profundizar en un solo proyecto. A menudo, definen tareas y recursos para los equipos que trabajan en el proyecto y realizan un seguimiento del progreso del proyecto a medida que se acerca el lanzamiento.

Las empresas más pequeñas pueden combinar los roles de analista de negocios, gestión de proyectos, scrum master y gerente de producto de varias formas, pero las empresas más grandes pueden definir responsabilidades separadas.

Excelentes habilidades de organización, comprensión del negocio y habilidades con las personas son fundamentales para tener éxito como gerente de proyecto. Esta función depende de su capacidad para gestionar las expectativas y motivar a las personas que podrían ser más senior o experimentadas que usted, por lo que debe generar confianza rápidamente. La naturaleza multifacética de este rol lo hace adecuado para personas analíticas y técnicas que ya no quieren escribir código.

8. Scrum Master

En los equipos ágiles, Scrum Master ayuda a garantizar que todos conozcan y compren la teoría, las mejores prácticas y las reglas de Scrum.

Esto termina pareciéndose mucho a la gestión de proyectos, pero con un énfasis particular en servir a los otros equipos involucrados en la construcción del producto. Nuevamente, este no siempre es su propio trabajo, pero en organizaciones más grandes, puede serlo.

La capacidad de gestionar las expectativas y las limitaciones es fundamental para su éxito como Scrum Master. También necesitará conocer las mejores prácticas de Agile, por lo que le recomendaría encontrar un curso o libro adecuado sobre el tema. Agile ha experimentado una adopción generalizada en organizaciones de todos los tamaños, por lo que es probable que esta trayectoria profesional continúe creciendo en la próxima década.

9. Gerente de producto

Pasé mucho tiempo en 2019 aprendiendo sobre la gestión de productos para mejorar nuestro proceso de entrega de productos en The Graide Network.

Los gerentes de producto miran de manera integral los productos de la compañía para asegurarse de que sean deseables (los clientes lo quieren), viables (tiene sentido comercial) y factibles (podemos construirlos). La capacidad de pensar a un alto nivel como este es rara, por lo que si la tiene y algunos conocimientos técnicos, podría hacerlo bien como gerente de producto.

Los gerentes de producto de nivel de entrada pueden comenzar con partes más pequeñas del producto o como gerentes de proyecto en algunas organizaciones. Esto puede darle una idea del desarrollo de productos y ayudarlo a establecer relaciones con todas las partes interesadas necesarias antes de que se le asigne su propio producto para administrar.

10. Diseñador

Si tienes experiencia en diseño o arte, convertirte en diseñador de UI o UX con algunas habilidades de codificación es una excelente manera de destacar en tu campo. Esta combinación de habilidades le permitirá hablar de manera más efectiva con ingenieros y crear maquetas interactivas en HTML / CSS en lugar de solo archivos de imágenes estáticas.

Si no tiene mucha experiencia en diseño, tome un curso y comience a crear un portafolio. Muchas empresas contratarán personas sin título si pueden mostrar sus conocimientos y habilidades. Dribbble es la plataforma de cartera más común que he visto, pero también puede usar su propio sitio web.

11. Desarrollador sin código o con poco código

La explosión de herramientas de desarrollo sin código y sin código en los últimos años ha abierto oportunidades para las empresas que desean crear software rápidamente sin contratar un equipo de desarrollo. Estas herramientas le permiten crear una aplicación móvil o web en horas en lugar de semanas, y debido a que mejoran cada año, más empresas están adoptando aplicaciones sin código.

Makerpad y No Code Jobs son buenos lugares para comenzar a buscar este tipo de trabajos. Debido a que este es un campo nuevo, encontrará una amplia gama de habilidades y escalas de pago requeridas, pero su código de escritura de antecedentes sin duda demostrará ser una ventaja.

Roles de apoyo

Muchos de los nuevos ingenieros de software no están al tanto de la gran cantidad de empleados entre bastidores que ayudan a mantener los servidores, los sitios web y las operaciones funcionando sin problemas. Algunos de estos roles requieren que escriba scripts de automatización o que tenga un conocimiento profundo de la administración del servidor, pero si está buscando algo fuera del ciclo de desarrollo de productos tradicional, pero con una inclinación técnica, estos podrían ser ideales.

12. Administrador de sistemas o ingeniero de DevOps

Las grandes empresas de software tienen cientos o miles de servidores que necesitan parchearse, actualizarse y rotarse durante todo el año. Si bien la adopción generalizada de la computación en la nube ha cambiado este trabajo de conectar servidores físicamente a trabajar con software como Terraform y Kubernetes, no hay escasez de trabajos en este campo.

Tradicionalmente, los administradores del sistema han sido responsables de mantener y administrar los servidores según lo necesiten los equipos de ingeniería. A medida que las organizaciones han crecido y se han trasladado al alojamiento en la nube, muchas han adoptado el título de ingeniero DevOps para reflejar la mayor automatización que se utiliza en este proceso. En la práctica, hay mucha superposición entre estos roles.

De cualquier manera, necesitará una comprensión básica de los sistemas operativos, las plataformas de alojamiento, las herramientas de automatización, las secuencias de comandos bash y la arquitectura del sistema. Puede ser difícil encontrar trabajos de nivel de entrada en este campo porque requiere una amplia gama de conocimientos técnicos, pero es un gran rol para hacer la transición si le gustan los aspectos de resolución de problemas de la ingeniería sin los requisitos de UI / UX que la mayoría los productos orientados al cliente requieren.

13. Administrador de base de datos

Algunas empresas agrupan a los administradores de bases de datos con los administradores del sistema, pero esta puede ser una función distinta.

Los administradores de bases de datos se ocupan de la seguridad, el aprovisionamiento, el escalado y la optimización de los sistemas de almacenamiento de datos de bajo nivel. Necesitará un conocimiento de bases de datos SQL y NoSQL, mejores prácticas de seguridad y algunas habilidades básicas de scripting, pero es probable que no escriba código todo el día. También tendrá que preocuparse por problemas de optimización realmente minuciosos, como arreglar índices y cachés.

Si es nuevo en el desarrollo de software, comience por aprender todo lo que pueda sobre bases de datos. Necesitará saber qué base de datos es adecuada para qué aplicación y cómo optimizar cada una de ellas a escala, por lo que puede ser difícil practicar esto por su cuenta. Si desea encontrar algunos conjuntos de datos grandes con los que trabajar, consulte Kaggle.

14. Ingeniero de confiabilidad del sitio

Los ingenieros de confiabilidad del sitio son responsables de responder y solucionar los problemas críticos que surgen en la producción. A menudo, esto significa que rotan a través de una lista "de guardia", por lo que es posible que trabajes algunas horas extrañas. La ventaja es que se volverá realmente bueno resolviendo una amplia gama de problemas inusuales, creando alertas automatizadas y leyendo registros del servidor.

Debido a la naturaleza altamente reactiva de este trabajo, puede ser difícil mantener a ingenieros de software experimentados en funciones de confiabilidad del sitio durante mucho tiempo. Dicho esto, podría ser un gran lugar para poner un pie en la puerta si tiene problemas para encontrar su primer puesto de desarrollo de software. He conocido a dos graduados de bootcamp que comenzaron en puestos de SRE antes de pasar al desarrollo de software. Incluso puede descubrir que le gusta el desafío y la emoción de la resolución rápida de problemas.

15. Asistencia técnica o al cliente

Mientras que algunos ingenieros temen las interacciones con los clientes, a otros les resulta estimulante ayudar a las personas a resolver problemas todo el día. Su experiencia en codificación lo convertirá en un candidato ideal para los roles de soporte al cliente en empresas de software que necesitan a alguien con experiencia técnica para responder preguntas y sugerir soluciones.

La desventaja de trabajar en soporte es que es posible que tenga que interactuar con personas en su peor momento. Los usuarios insatisfechos o frustrados probablemente no estén contentos de hablar con el equipo de soporte técnico, por lo que necesitará mucha paciencia y piel dura para permanecer en este rol por mucho tiempo.

Roles de enseñanza y escritura

Siempre me ha gustado enseñar, así que me encontré gravitando hacia los roles de ingeniería que me permitían hacer esto. Si le gusta desglosar temas complejos y presentárselos a otros ingenieros, hay algunas carreras que puede seguir.

Funciones de enseñanza para desarrolladores de software

16. Escritor técnico

Mi tercera pasantía en la universidad fue como redactora técnica en una gran corporación. Era una escritura bastante seca, pero disfruté aprendiendo cosas nuevas todos los días.

Desde entonces descubrí que la redacción técnica no solo significa documentación. Puede realizar blogs técnicos o redacción de textos publicitarios; puede crear documentación interna o externa; puede crear aplicaciones de demostración y tutoriales. Es uno de los campos mejor pagados para los escritores, por lo que vale la pena considerarlo.

Si sigue este camino, tendrá que ser bueno escribiendo (obviamente), organizando ideas complejas y aprendiendo cosas nuevas. Cuanto más puedas autoeditar, más valioso será tu trabajo, así que invierte en herramientas que te ayuden a ser mejor y más eficiente.

Puede comenzar escribiendo para algunos de los programas de escritura comunitarios pagos y convertir esa experiencia en un trabajo de tiempo completo a medida que crea una red y una cartera.

17. Maestro

Hay varias formas de pasar de una carrera en desarrollo de software a una como profesor. Podrías conseguir un trabajo enseñando en un bootcamp de codificación, podrías enseñar en una universidad o escuela secundaria, podrías unirte a una plataforma como egghead.io, o podrías crear tu propio sitio web de cursos con Teachable o Educative. El camino que tome depende de sus antecedentes y tolerancia al riesgo.

En cualquier caso, los profesores deben aprender la nueva información rápidamente y presentarla en un formato digerible a sus alumnos. Tienes que conocer a tu audiencia a su nivel y generar confianza con ellos para tener éxito. La enseñanza puede pagar menos que el desarrollo de software, pero también puede ser una carrera profesional muy satisfactoria.

18. Entrenador

La formación empresarial es otra forma de enseñanza, pero también merece la pena considerarla. Los capacitadores pueden trabajar como consultores independientes o empleados en grandes empresas, donde normalmente viajan a las oficinas de sus clientes para brindar capacitación práctica sobre software especializado.

Los entrenadores pueden tener un conocimiento técnico profundo, pero algunos son solo comunicadores expertos en tecnología. La capacitación corporativa generalmente paga mejor que la enseñanza, pero también puede estar más impulsada por las ventas. Los capacitadores a menudo hablan en conferencias, imparten talleres comunitarios o viajan a grupos de reunión entre sesiones de capacitación.

Si te gusta estar en el escenario y presentar conceptos técnicos, esta podría ser una carrera profesional ideal.

Roles analíticos

Muchos roles dentro de las empresas de tecnología requieren habilidades analíticas. Si bien muchos de estos campos requieren educación especializada, vale la pena considerarlos si está alejándose de la ingeniería de software en su carrera. Podrá trabajar a un ritmo diferente al de la mayoría de los ingenieros enfocados en productos y, al igual que algunos de los roles de soporte anteriores, puede interactuar con otras partes del negocio.

19. Científico o ingeniero de datos

Estos dos roles (algunas empresas los combinan) implican el uso de grandes conjuntos de datos para ayudar a la empresa o sus clientes a tomar mejores decisiones.

Los ingenieros de datos suelen trabajar en la canalización de la organización y la ingestión de datos, mientras que los científicos de datos diseñan los experimentos y algoritmos que procesan estos datos en resultados útiles. La ciencia de datos (IA, aprendizaje automático, etc.) es un campo enorme con raíces en las matemáticas, la ingeniería de software y las estadísticas.

Hay cursos, bootcamps y títulos universitarios de ciencia de datos e ingeniería, pero es posible que pueda aprender algunos de los conceptos básicos por su cuenta si tiene una sólida formación en matemáticas. Si no es así, considere primero repasar el análisis numérico, el álgebra matricial y las estadísticas.

Debido a que estas habilidades requieren mucho tiempo para aprender y los científicos de datos tienen una gran demanda, esta función se paga bien y no es probable que desaparezca pronto.

20. Analista de seguridad

Los roles de seguridad de la información generalmente pasan desapercibidos hasta que algo sale mal. Si bien todos los desarrolladores deben conocer las vulnerabilidades y los riesgos de seguridad, los analistas de seguridad se contratan explícitamente para buscar, catalogar y sugerir soluciones para problemas de seguridad.

Algunos trabajan como consultores independientes, pero en empresas más grandes, puede haber equipos internos. Esta función es interesante porque requiere una combinación de habilidades técnicas, de cumplimiento, comerciales y de evaluación de riesgos.

Los trabajos de seguridad también se encuentran entre los más difíciles de cubrir para los líderes tecnológicos, por lo que aquí tendrá seguridad laboral. La seguridad de la información es un campo amplio, así que consulte algunos de los muchos caminos que puede tomar si está interesado en seguirlo.

21. I + D

Trabajar en investigación y desarrollo puede ser una experiencia única para alguien con habilidades en ingeniería de software. Las grandes empresas como Google y Amazon dedican una parte de sus beneficios a experimentos de alto riesgo y potencialmente de gran recompensa llevados a cabo por equipos de investigación y desarrollo. Estos equipos interdisciplinarios pueden incluir desarrolladores de software, científicos de datos, analistas comerciales y gerentes de proyectos.

Entrar en un buen equipo de I + D es difícil. Estos roles tienden a ser competitivos y requieren un conocimiento altamente especializado sobre temas que probablemente no aprenderá en un bootcamp de programación. Dicho esto, algunas empresas contratan hackers éticos, fundadores o políglotas para ayudar a completar el equipo y aportar un poco de pensamiento creativo a la mezcla.

Independencia y flexibilidad

Si bien la nuestra es una profesión que a menudo permite el trabajo a distancia y, a veces, incluso períodos sabáticos, es posible que desee aún más flexibilidad en su vida. Si tiene el impulso para iniciar su propio negocio, es posible que pueda trabajar 4 horas a la semana, pasar seis meses del año viajando o dedicar la mitad de su tiempo a trabajar en proyectos de código abierto. No es fácil, pero como desarrollador de software, tienes una gran ventaja sobre la mayoría de las personas.

22. Trabajador autónomo o consultor

Una forma de obtener más libertad es dejar su trabajo de 9 a 5 y convertirse en autónomo. Como autónomo, te contratarás a uno o más clientes que te pagarán por hora para escribir el código para ellos. Las empresas a menudo contratan autónomos para trabajar en proyectos específicos a corto plazo, limpiar deudas técnicas o llenar vacíos cuando un empleado se toma un descanso.

Los consultores son autónomos de alto nivel que resuelven problemas específicos para sus clientes. Si bien pueden escribir código, a menudo se incorporan debido a su experiencia o antecedentes únicos. La línea entre autónomos y consultores es bastante borrosa, así que no te dejes atrapar demasiado por la semántica.

Empezar como autónomo o consultor es la parte más difícil. Si no tiene una red enorme, probablemente dependerá de plataformas como Upwork o Toptal para encontrar clientes. Estas plataformas toman una parte significativa de sus ingresos y lo obligan a competir directamente con muchos otros autónomos de todo el mundo.

A medida que construya una reputación y una lista de clientes, podrá obtener más trabajo de las referencias. Las referencias son excelentes porque el cliente acude a usted basándose en una relación de confianza en lugar del anonimato de Internet. Si se vuelve realmente bueno como trabajador independiente o como consultor, puede aumentar su tasa lo suficiente como para tomarse un tiempo libre entre cada compromiso.

23. Fundador de una startup

Internet está lleno de historias de ingenieros de software que inician negocios (1, 2, 3), por lo que puede tener la impresión de que es fácil o incluso una buena idea.

La verdad es que depende.

Las nuevas empresas suelen tardar mucho en generar ingresos, por lo que deberá vivir sin un cheque de pago durante varios meses o años para que esto funcione. Dicho esto, si desea crear su propio negocio de software, las ventajas son casi ilimitadas.

También es posible que pueda iniciar una empresa fuera de su horario laboral habitual. Si bien esto es difícil de hacer (y puede tener ramificaciones legales), no es infrecuente. Si puede encontrar uno o dos fundadores con quienes compartir la carga, eso puede aumentar sus posibilidades de éxito.

Pensamientos finales

La ingeniería de software es un campo emocionante, pero no es para todos. Incluso si te vas, las habilidades que adquiriste no se desperdiciarán si decides hacer otra cosa.

Muchos graduados de bootcamp tienen miedo de buscar trabajos fuera del campo del desarrollo de software, pero te animo a que sigas tu propio camino. Equilibre la practicidad (ganar suficiente dinero para vivir) con sus intereses y, con suerte, podrá encontrar una carrera en la que el trabajo no se sienta como "trabajo".

Me encantaría escuchar tus pensamientos. Si ha tomado un camino poco convencional o ha hecho un cambio de carrera, hágame saber lo que piensa en Twitter.