Template de NodeJS para onboarding Condor Labs.

Sebastian Restrepo Moreno
Condor Labs Engineering
5 min readMay 13, 2022

La vinculación a una compañía como Condor Labs que ante el contexto colombiano simboliza un sueño profesional, representado en factores como su ambiente y bienestar laboral, el perfil de sus clientes, su dinámica organizacional y de trabajo en equipo, sus sueldos competitivos, la posibilidad de crecer académica y profesionalmente; es para cualquier programador Junior mucho más que sólo una experiencia laboral. Ser parte de Condor labs significa ingresar desde el ALTO VUELO como lo hace el CÓNDOR, al mundo de la programación práctica y de impacto. Significa un importante evento de aprendizaje, de investigación y de generación de propuestas desde las diversas y potenciadas posibilidades que existen dentro de la compañía.

Mi ingreso a ella ha estado lleno de expectativas y cargado de ganas de aprender. Creo fundamental resaltar las positivas condiciones que se tienen en el período de prueba: Un ambiente proactivo y ameno, un enganche con un equipo de trabajo eficaz y constante, una comunicación asertiva y cercana entre pares y superiores, la posibilidad de sentirse, de hecho, no sólo como parte de una compañía, sino, realmente parte de una comunidad pensante, creadora y propositiva, haciendo equipo en el trabajo para generar los mejores resultados y sortear de la mejor manera las dificultades.

En el marco del proceso de onboarding y desde mi posición como desarrollador junior con la intención de aprovechar la posibilidad de escribir y reflexionar, quise pensarme alguna forma de sumar a lo que hasta ahora he conocido de Condor Labs: El proceso de entrenamiento. De ésta manera fue como identifiqué una posibilidad de mejora en el proceso de aprendizaje.

El onboarding plantea como objetivo principal la preparación del empleado para afrontar su trabajo de la mejor manera a partir de un período de entrenamiento eficaz para que el nuevo empleado ingrese capacitado y enganchado con los equipos de trabajo.

En éste sentido, la primera etapa (dos primeras semanas) del onboarding se propone el estudio de las tecnologías utilizadas dentro de la organización y la realización de un proyecto personal; éste proyecto es dejado a la elección del empleado, y debe ser desarrollado en una semana o incluso en algunos días como fue mi caso.

Ante esta situación mi primera reflexión a partir de mi experiencia es que cinco días o menos es muy poco tiempo para desarrollar un buen proyecto capaz de poner en práctica varias de las tecnologías utilizadas por la compañía y que a la vez genere aprendizajes significativos en el empleado en dicho período.

De hecho, hay muy poco tiempo para corregir problemas encontrados y hacerle frente a algunos desafíos con los que uno se entusiasma como programador debido a que se debe pasar a la segunda etapa del onboarding.

Por ésta premura también se dejan de aplicar varios de los temas contenidos en las guidelines, que por el poco tiempo pudo ser difícil de implementar dentro del proyecto, y seamos sinceros, como novatos en el proceso corporativo, no nos las sabemos todas. A veces nos cuesta trabajo y nos da dificultad algún tema en particular. Tema que demanda tiempo de estudio para su comprensión e implementación, y es que más que una prueba de aprendizaje guiado, se parece a una prueba de habilidades técnicas, y debemos hacer un alto en este punto. En esta etapa no se le está midiendo el aceite a los empleados (Lo tengo ahora muy claro porque conozco un poco la compañía). Para esto ya tuvo lugar la entrevista técnica. Esta etapa se trata de enseñar y preparar a los novatos de la mejor manera en el corto tiempo que se tiene.

Es por esto que desarrollé un pequeño template de NodeJS el cual ya viene preestablecido con algunas tecnologías base que se deben usar dentro de la compañía y de las cuales se deben tener conocimiento. El template optimiza tiempo en el desarrollo del proyecto personal, ya que cuenta con varias de las tecnologías de Condor Labs como ya fue mencionado y además está desarrollado bajo una arquitectura de 3 capas (básica para el conocimiento de todos), haciendo así más fácil la implementación o inicio del proyecto personal, ya que ahorra tiempo valioso y que puede ser empleado para lograr desarrollos de alto nivel.

Dentro de las tecnologías que se utilizan o que se espera que el empleado utilice están: Docker, Joi, Dotenv, Jest, Swagger, y algunas otras como logger o Eslint.

Para descargar o darle un vistazo al repositorio debes ingresar al siguiente enlace: Template

A continuación veremos el diagrama de arquitectura utilizado en el template, así como también las tecnologías empleadas y cuál es su uso:

Diagrama de arquitectura:

Algunas tecnologías utilizadas:

  • Docker: Se utiliza para correr las aplicaciones en entorno local y facilitar la implementación de bases de datos.
  • Jest: Permite realizar las pruebas a nuestro código para así validar el correcto funcionamiento de nuestros endpoints.
  • Dotenv: Nos ayuda a manejar las variables de entorno para hacer más segura nuestra API.
  • Joi: con esta tecnología logramos validar los datos ingresados por los usuarios para así bloquearles el camino desde la capa de los controladores.
  • Swagger: Ésta herramienta nos ayuda a desarrollar la documentación técnica de nuestra API. Además nos facilita la integración con el frontend.
  • Eslint: Herramienta que utiliza los parámetros establecidos por Condor Labs para identificar posible código problemático.
  • Logger: Con esta herramienta podemos guardar registros estructurados en la salida.
  • Express: Nos sirve como framework para desarrollo web y facilitador para el uso de middleware.

Con este template se propone como objetivo optimizar tiempos del primer periodo del onboarding y plantearle una base al nuevo empleado de la cual partir para así lograr tener resultados más eficaces en su periodo de entrenamiento.

Finalmente, bajo éste marco espero poder aportar un grano de arena para el inmenso mar de creación, retos, y propuestas que representa ésta compañía y así dejarles parte de mi reflexión durante el onboarding. Este período para mí concluye como todo un proceso de adaptación, motivación y anclaje a un muy buen equipo de trabajo y a su proactiva, asertiva y empática forma de hacer las cosas.

--

--

Sebastian Restrepo Moreno
Condor Labs Engineering

TypeScript Backend Developer | AWS Cloud Practitioner Certified. 🚀 💻