De cero a un millón de usuarios: cómo hacer crecer rápidamente un equipo tecnológico exitoso

El equipo de Badi en nuestra sede en Barcelona, ​​España.

Badi es una startup en crecimiento con una misión clara: mejorar la vida urbana conectando a las personas con espacios compartidos. Los logros de nuestra compañía llevaron a una financiación de capital de riesgo de $ 45 millones hasta el momento y a la nominación WIRED entre las nuevas empresas más populares de Europa durante 2 años seguidos.

Como Director de Tecnología en Badi, mi enfoque principal ha sido crear la tecnología y el equipo que la construyó desde cero.

En los últimos 2.5 años, ampliamos nuestros servicios tecnológicos de 0 a 1 millón de usuarios. Entregamos cientos de millones de transacciones mensuales con un tiempo de respuesta promedio de menos de 100 ms, manteniendo un tiempo de actividad constante del 99.9%.

Esto ha sido posible gracias a una estrategia tecnológica basada en datos y una cultura de ingeniería basada en la confianza y la propiedad, que también se refleja en nuestra tasa de rotación de ingenieros, que hasta ahora ha sido igual a cero en un ecosistema tecnológico muy competitivo.

Como líder tecnológico que trabaja en un entorno acelerado, ¿cómo puede escalar con éxito una empresa desde cero hasta millones de usuarios?

Aquí hay algunos consejos para los líderes tecnológicos que trabajan en un entorno donde el crecimiento turbo, la calidad y la velocidad de ejecución son los requisitos principales.

Talento tecnológico

Contratar, contratar, contratar!

Trabaja solo solo si estás construyendo tu primer MVP. Después de eso, deberá comenzar a contratar. De cualquier otra manera, es posible que te encuentres atrapado en un bucle infinito donde nunca tendrás tiempo suficiente para contratar porque estás codificando.

Tu equipo es tu mejor activo. La búsqueda de talento puede tomar hasta el 50% de su tiempo (sí, usted lee bien) en las primeras etapas de una empresa.

Si su presupuesto inicial no le permite atraer ingenieros experimentados, obtenga desarrolladores junior. ¡Mis primeras contrataciones en Badi fueron desarrolladores junior recién salidos de un campamento de programación y no podría haber estado más feliz con ellos! Los ingenieros junior suelen estar muy motivados y entusiasmados con sus primeros trabajos. No te imaginas lo que pueden lograr con la cantidad justa de orientación.

Confiar y delegar

No debes microgestión. Este es mi lema. Supervisar, pero no intentes controlarlo todo. Es contraproducente y no tienes tiempo para eso.

No dudes en dar la propiedad y las responsabilidades a tu equipo. Si fallan, aprenderán de sus errores.

La mayoría de los ingenieros están naturalmente inclinados a asumir nuevos desafíos y resolver problemas complejos. Te sorprenderá lo que pueden lograr cuando les des tu total confianza. Además de eso, al hacerlo, también fomentará el crecimiento profesional de su equipo, que es uno de sus principales objetivos como líder tecnológico. Tu equipo pronto se dará cuenta de eso y te lo agradecerán.

Quedarse con hambre

Trabajar en tecnología requiere capacitación constante. Su equipo necesita acceso a recursos de aprendizaje, así como su apoyo y aliento para asistir a eventos relevantes.

Esto no es opcional. Asegúrese de asignar tiempo y presupuesto para capacitación técnica. Cuando la empresa crezca, establezca un presupuesto para cada uno de sus ingenieros para capacitación y viajes de negocios.

¡Los eventos tecnológicos también son lugares perfectos para establecer contactos y explorar nuevos talentos!

Tech Stack e Infraestructura

Piensa por adelantado

Un líder tecnológico comprende completamente la estrategia comercial y la convierte en especificaciones y requisitos tecnológicos de alto nivel que el equipo puede ejecutar. Esta habilidad requiere un pensamiento inicial donde la escalabilidad es la clave.

Durante los primeros años de una empresa, es completamente normal cambiar la hoja de ruta varias veces al año y ajustar los objetivos. Puede que a tu equipo no le guste, pero debes estar preparado para eso.

Un enfoque para abordar este desafío es invertir tiempo desde el primer día en la creación de una infraestructura tecnológica sólida que pueda apoyar el crecimiento del negocio. Esto se puede lograr hoy enfocando los esfuerzos en la construcción de una arquitectura modular basada en la nube utilizando proveedores como AWS y GCP. Al hacerlo desde el principio podrás:

  • desarrolle sus servicios de acuerdo con un paradigma de sistemas distribuidos, a diferencia de los monolitos de software de monoinstancia. Esto facilitará la identificación de cuellos de botella e implementará soluciones cuando se amplíe;
  • ser capaz de lanzar temporalmente el hardware al problema. Hace un par de años, en Badi, tuvimos nuestra primera campaña publicitaria televisiva multimillonaria. Al aumentar el número de instancias que ejecutan nuestra API principal y nuestro sabor de base de datos, nos aseguramos de que pudiéramos manejar con éxito los picos de usuarios altos. Esto estaba lejos de ser una situación ideal desde una perspectiva puramente de ingeniería, pero estaba perfectamente bien en términos de estrategia comercial.

Diseñe sus sistemas teniendo en cuenta la escalabilidad.

Monitoree sus servicios

Hay una diferencia entre el azar y la suerte. No puedes controlar el azar (así que no te preocupes por eso), pero puedes moldear tu suerte.

Durante los últimos 2.5 años en Badi, tuvimos un tiempo de actividad promedio constante de 99.9%. ¡No está mal para una startup! La razón de este logro fue la estrategia basada en datos que promovimos, que consiste en un monitoreo avanzado de todos los servicios y un análisis continuo de su comportamiento a lo largo del tiempo.

Al utilizar productos como NewRelic, Dynatrace o Datadog, puede recopilar datos cuantitativos sobre el rendimiento de sus sistemas. Luego puede optimizar sus servicios y predecir posibles cuellos de botella. Al usar NewRelic, por ejemplo, pudimos identificar una pérdida de memoria importante que afectó a nuestra API y resolverla antes de que se convirtiera en un problema real.

Monitorear sus servicios e infraestructura puede ser costoso, sin embargo, es una inversión con un alto rendimiento que debería ser parte de su estrategia tecnológica. Después de todo, nuestro trabajo es resolver problemas antes de que realmente ocurran.

Cuanto más simple, mejor

¿Cuántas veces hemos tenido la tentación de probar el último lenguaje de programación, marco o motor de base de datos para enviar nuestro nuevo producto? Antes de hacerlo, como líder tecnológico, es su deber dar un paso atrás y separar su entusiasmo natural de los requisitos comerciales reales.

¡No intentes construir una nave espacial si lo que realmente necesitas es una bicicleta!

Si bien el pensamiento inicial es una habilidad necesaria para cualquier líder tecnológico, también lo es evitar una arquitectura excesiva.

¿Mi elección favorita? Envíe la solución más simple posible, y luego construya sobre ella.

Un colega me preguntó una vez por qué elegí una base de datos MySQL para los servicios centrales de Badi en lugar de una contraparte no más "moderna" no relacional. Simplemente busqué la solución más óptima, aquí está el por qué:

  • Nuestra lógica comercial principal incluía usuarios, salas e imágenes. Un usuario puede tener N habitaciones y una habitación N imágenes ... No hay nada más relacional que eso;
  • MySQL ha existido durante más de 20 años, es una opción sólida y tiene un gran rendimiento con poca optimización requerida hasta cientos de millones de registros;
  • Además, la mayoría de las herramientas de análisis y visualización de datos requieren consultas basadas en SQL. Una base de datos relacional facilita la vida de los científicos de datos y las unidades de BI en las primeras etapas de una empresa (eventualmente, creará un almacén de datos).

Si bien siempre debemos probar las últimas tecnologías, no las adoptemos a nivel de producción solo porque son elegantes. Asegúrese de tener un caso de negocios del mundo real que realmente pueda beneficiarse de ellos.

Deuda técnica

La primera regla de la deuda técnica es ... hablas de deuda técnica.

La construcción de tecnología sólida en una empresa requiere el equilibrio adecuado entre calidad y velocidad de entrega. Esto a menudo implica una compensación, y no hay vergüenza en eso.

Está bien acumular deuda técnica hasta cierto punto, siempre y cuando usted y su equipo lo sepan y tengan un plan concreto para mejorar a corto y mediano plazo.

En algunos casos, acumular conscientemente alguna deuda tecnológica puede incluso ser parte de su estrategia comercial.

Uno de los primeros desafíos tecnológicos en Badi, por ejemplo, fue la creación de un sistema de chat interno para permitir a los usuarios comunicarse en tiempo real. Esta fue una de las características principales de nuestro producto, que estaba directamente conectada a los KPI más importantes de la compañía. Tuvimos un tiempo limitado (¡menos de 1 mes!) Y recursos (2 desarrolladores de back-end). Después de algunas reflexiones iniciales, decidimos usar Actioncable, la integración de websocket que viene de fábrica con el marco que alimenta nuestra API (RoR).

Este enfoque presentaría algunas limitaciones futuras en términos de concurrencia y latencia. Todos los conocíamos, y es precisamente por eso que ya teníamos un plan para construir un microservicio de última generación para nuestro chat, posiblemente usando Node.js o Go.

Al elegir Actioncable, pudimos enviar nuestro primer sistema de chat basado en websocket en solo dos semanas. No fue la mejor implementación de chat que podríamos haber construido; Sin embargo, fue rápido y razonablemente bueno por el momento y contribuyó directamente a cerrar una ronda de financiación de la Serie A de $ 10 millones. ¡No está mal!

Un líder tecnológico debe ser capaz de encontrar siempre el equilibrio adecuado entre la escalabilidad de las soluciones y la estrategia comercial.

Presupuesto

Pide más $$$

No importa cuánto trabaje con su departamento de finanzas para planificar un presupuesto, en las empresas en etapa inicial (especialmente durante el primer año) puede darse cuenta a mitad del trimestre que su presupuesto es ajustado.

Si sabe exactamente lo que necesita para crecer más rápido (por ejemplo, un nuevo servicio, talento adicional, etc.) y su único obstáculo es la falta de presupuesto, no lo piense dos veces y simplemente solicite más dinero.

No siempre se le otorgarán los gastos adicionales, pero al menos creará una necesidad futura.

En Badi, pronto me di cuenta de que necesitábamos un servicio externo de control de calidad para realizar pruebas beta de crowdsource para nuestras aplicaciones móviles. Nuestro equipo solía sentarse y probar nuestro producto todos los viernes durante un par de horas. Esto no fue eficiente principalmente debido al tiempo limitado que teníamos y al pequeño número de dispositivos que poseíamos.

Cambiar a un servicio externo de control de calidad fue lo correcto para aumentar la productividad del equipo y mejorar la calidad general del producto. Decenas de usuarios reales probarían nuestras aplicaciones durante los fines de semana utilizando un grupo heterogéneo de dispositivos y reportarían sistemáticamente errores a través de nuestro software de seguimiento de problemas.

Para una empresa que tenía una financiación total de $ 1M en ese momento, este servicio de control de calidad era bastante costoso. Probablemente pueda imaginar la expresión de nuestro CFO cuando inesperadamente solicité 50 a 100k adicionales para ello. Al principio no recibí el dinero; sin embargo, pudimos asegurarlos un par de meses después.

Los resultados de esta nueva inversión pronto se hicieron evidentes y, desde entonces, los gastos de pruebas y control de calidad simplemente se dieron por sentados por todos, sin hacer preguntas.

Tus compañeros no tecnológicos no leerán tu mente. Cuando necesites algo, pídelo.

Consultar descuentos

Algunos servicios de terceros y SaaS ofrecen planes de precios de inicio, mientras que otros no. En cualquier caso, siempre comuníquese con los ejecutivos de ventas y solicite descuentos.

Siempre que creo que el precio de un nuevo servicio que quiero adoptar es demasiado alto, solicito una llamada rápida donde me presento a mí y a mi empresa. Luego explico cuánto me encantaría usar su producto y por qué. Luego solicito explícitamente posibles descuentos.

Se sorprendería de cuántos proveedores están dispuestos a ofrecer un descuento, créditos gratuitos o planes de precios no estándar / ocultos, al menos por algún tiempo. En mi experiencia, 8 de cada 10 vendedores estaban más que dispuestos a bajar su precio cuando se les preguntó. En algunos casos, ahorramos hasta un 75% del costo original durante el primer año.

Después de todo, es una situación beneficiosa para ambas partes: si su empresa crece, también lo harán los servicios que utiliza.

No hay vergüenza en pedir descuentos o créditos gratis. Esto también demostrará a su departamento de finanzas que realmente desea ahorrar el dinero de la compañía, reforzando así su credibilidad cuando solicite un presupuesto más alto en el futuro.

Relaciones profesionales

Se empático

La empatía y la inteligencia emocional son las habilidades más importantes que todo líder debe poseer.

Sea empático con su equipo y con sus colegas. Esta es la mejor manera de fomentar la claridad en la comunicación a cualquier nivel, así como para persuadir a otros a seguir su orientación y recomendaciones.

La empatía puede no ser natural para algunas personas al principio. Es solo una cuestión de ponerse en el lugar de otra persona y tratar de comprender lo que siente la otra persona y por qué.

Domina el arte de la empatía y tendrás una gran carrera como líder.

Sé parte de la comunidad tecnológica local.

Sea activo en la comunidad tecnológica local al participar regularmente en eventos y reuniones.

Cada ciudad importante organiza diariamente una amplia gama de eventos relacionados con la tecnología, que a menudo son seguidos por sesiones de networking. Conoces gente nueva, compartes ideas y te pones al día con colegas nuevos y antiguos. Durante tales eventos, también puede descubrir nuevos talentos para contratar.

En nuestra ciudad, organizamos una reunión llamada "CTOs & co". Nuestra comunidad cuenta con más de mil miembros y reúne a profesionales del ecosistema tecnológico local que se ayudan mutuamente mediante el intercambio de ideas y consejos. Allí compartí por primera vez nuestra experiencia en la creación de un equipo tecnológico exitoso desde cero.

Conclusiones

El trabajo consiste en divertirse haciendo las cosas que más disfruta. Los logros exitosos inspiran a las personas y crean lazos. No importa cuán agitados sean tus días, siempre tómate un tiempo para celebrar hitos importantes con tu equipo.

El equipo de Badi celebra el primer millón de usuarios.