¿En qué se fijan los reclutadores IT al valorar un CV?
¿En qué se fijan los reclutadores IT al valorar un CV?
En el competitivo mundo de la tecnología, la valoración de un currículum (CV) por parte de los reclutadores IT puede marcar la diferencia entre avanzar a la siguiente etapa del proceso de selección o ser descartado. Los reclutadores especializados en IT tienen criterios específicos que utilizan para evaluar la idoneidad de los candidatos, más allá de la simple experiencia laboral y educación.
En este artículo, desglosaremos los aspectos clave en los que los reclutadores IT se fijan al valorar un CV.
- Habilidades técnicas
El primer y quizás más crucial aspecto que los reclutadores IT evalúan es la relevancia de las habilidades técnicas del candidato. Los reclutadores buscan habilidades específicas que coincidan con los requisitos del puesto. Por ejemplo:
- Lenguajes de programación
- Tecnologías y herramientas diversas
- Metodologías de trabajo
Es fundamental que los candidatos destaquen sus competencias técnicas de manera clara y precisa, incluyendo además de lo anterior ejemplos concretos de proyectos y logros, años de experiencia con cada aptitud etc.
La automatización puede reemplazar tareas repetitivas y rutinarias, lo que libera a los empleados para enfocarse en actividades de mayor valor añadido, como la resolución de problemas, la creatividad y la innovación. Sin embargo, para capitalizar estas oportunidades, las empresas y los trabajadores deben estar dispuestos a reinventarse continuamente.
- Experiencia profesional
La experiencia profesional es otro factor determinante en la búsqueda de empleo.
Los reclutadores IT revisan la experiencia laboral previa para evaluar si el candidato ha trabajado en roles similares y ha manejado proyectos que se alinean con las necesidades de la empresa. La descripción de proyectos anteriores debe detallar las responsabilidades y resultados obtenidos, destacando el impacto que el candidato tuvo en cada proyecto, así como la duración en el tiempo, añadiendo las tecnologías trabajadas en cada experiencia.
- Formación
Las credenciales académicas y las certificaciones también juegan un papel importante a la hora de revisar un CV.
Los reclutadores IT consideran la formación académica del candidato, tales como títulos universitarios (especialmente relacionados con la tecnología, certificaciones adicionales que demuestren especialización en determinadas áreas relacionadas con la vacante a la que se aplica y todo tipo de cursos. Además, las fechas de las formaciones deben aparecer siempre en el CV.

- Soft Skills
A la hora de contratar, los reclutadores IT cada vez valoran más las llamadas “Soft Skills” o habilidades blandas, las cuales pueden ser factores clave a la hora de ser seleccionado o rechazado en un proceso.
Es conveniente dedicar un apartado del cv a enumerar las habilidades blandas que te caracterizan, así como combinarlas con las habilidades técnicas en una posterior entrevista.
Te contamos cuáles son algunas de las habilidades más demandadas en el mercado laboral actual:
- Flexibilidad o capacidad de adaptación
- Pensamiento crítico
- Habilidades comunicativas
- Trabajo en equipo
- Capacidad de aprendizaje
- Trabajo autónomo
- Resolución de problemas
- Proactividad/iniciativa

- Información esencial y estructura del cv
El CV es una herramienta esencial para presentar de manera efectiva las cualificaciones y experiencia para vender nuestro perfil profesional. Si queremos asegurar el impacto, es importante incluir información esencial de forma clara y precisa. En primer lugar, los datos personales deben incluir nombre completo, información de contacto actualizada (número de teléfono y correo electrónico profesional) y enlaces a perfiles profesionales como LinkedIn o un portfolio online, si es relevante para el puesto. También es útil incluir un perfil profesional o resumen, un breve párrafo al inicio que destaque las principales habilidades, áreas de especialización y objetivos laborales, adaptados al puesto al que se opta.
La estructura del CV debe seguir un orden lógico, comenzando con la experiencia laboral en formato cronológico descendente, destacando logros y responsabilidades clave. A continuación, la educación formal, detallando títulos obtenidos y fechas. También es importante incluir una sección de habilidades (skills), tanto técnicas (hard) como blandas (soft), y certificaciones, logros, e idiomas. Un diseño limpio y conciso facilita la lectura y proyecta profesionalismo.
En resumen, los candidatos que logran resaltar estos aspectos de manera efectiva tienen mayores posibilidades de captar la atención de los reclutadores y avanzar en el proceso de selección. La clave está en presentar un CV bien estructurado que demuestre claramente cómo se alinean sus habilidades (técnicas y habilidades blandas) y experiencia con los requisitos del puesto y la cultura de la empresa.
Jornadas de Equipo Hasten Group 2024
El pasado jueves 5 de septiembre, el equipo corporativo de Hasten Group se trasladó a la hermosa localidad de Cercedilla, un paraje natural en la sierra madrileña, para celebrar nuestras anuales jornadas de equipo. Este evento, que se ha convertido en una tradición dentro de la compañía, representa una valiosa oportunidad para desconectar de la rutina diaria y reforzar el espíritu de colaboración que impulsa nuestro crecimiento.

En colaboración con We Win, vivimos un día inolvidable dedicado al #TeamBuilding, donde participamos en una serie de actividades diseñadas estratégicamente para mejorar la comunicación interna, estrechar los lazos entre compañeros y aplicar dinámicas de trabajo en equipo al exigente mundo del IT.
Estas actividades nos permitieron identificar nuevas formas de colaboración, explorar diferentes enfoques para resolver problemas y, en última instancia, mejorar la eficiencia y productividad en nuestras tareas cotidianas.
Uno de los aprendizajes clave de la jornada fue comprender el papel fundamental del trabajo en equipo para alcanzar los objetivos comunes. Este tipo de experiencias nos enseñan que el éxito no solo se construye con habilidades técnicas, sino también con una coordinación efectiva, confianza mutua y un enfoque colaborativo.

Gracias a la energía y el compromiso de todos los participantes, estas jornadas no solo fortalecen nuestra cohesión como equipo, sino que también reafirman nuestro compromiso con los valores de la compañía: innovación, colaboración y excelencia.
¡Estamos más unidos que nunca y listos para seguir impulsando el crecimiento de Hasten Group hacia nuevos horizontes!
El cofundador de OpenAI alucina con lo que está pasando en la programación con IA
La programación está experimentando una transformación radical con la llegada de herramientas impulsadas por inteligencia artificial. Tanto, que ya hay quienes piensan que podríamos estar presenciando el fin de la era de la escritura tradicional de código... y el primer atisbo de un futuro en el que predomine lo que Andrej Karpathy, exdirector de Autopilot en Tesla y cofundador de OpenAI, denomina "half-coding" (medio-programar).
Es decir, que la IA nos permite que, en lugar de escribir código línea por línea de manera tradicional, enfocarnos en escribir partes iniciales del código y luego permitir que la IA continúe, refine y complete el trabajo.
Y es que la clave ya no está en acelerar el proceso de codificación, sino también en facilitar la creación de aplicaciones complejas sin necesidad de escribir una sola línea de código.
Cursor como bloque insignia de esta nueva tendencia
Es cierto que herramientas como GitHub Copilot ya habían dado un primer paso en la automatización del código, pero una nueva herramienta, Cursor AI, está llevando esto al siguiente nivel, integrándose con modelos de lenguaje avanzados (como Claude 3.5 de Anthropic, Llama 3.1 de Meta y GPT-4 de OpenAI), y permitiendo a los desarrolladores crear y editar código sin necesidad de un entorno de desarrollo tradicional.
Cursor AI es una herramienta que facilita la generación automática de código a través de simples comandos en lenguaje natural, y ya ha captado la atención de desarrolladores de alto perfil, incluidos ingenieros en OpenAI y Midjourney. El propio Andrej Karpathy ha compartido en redes su asombro ante este programa:
De hecho, Karpathy, quien hace un año afirmó que "el inglés es el lenguaje de programación más popular", ahora predice que el futuro de la codificación será lo que califica ya de mero "Tab, tab, tab", en referencia al uso de la tecla de tabulación y a la facilidad para autocompletar código usando herramientas de IA como Cursor.

Microsoft siente el aliento de Cursor en la nuca
Comprensiblemente, la irrupción de Cursor ha puesto en alerta a gigantes como Microsoft: VS Code, una de las plataformas de desarrollo más utilizadas en el mundo (y en la que se basa el propio Cursor), ha comenzado a sentir la presión.
Y así, aunque aún mantiene una gran base de usuarios, algunos desarrolladores ya han comenzado a desinstalarlo en favor de Cursor, lo que podría obligar a Microsoft a aprovechar mejor sus propios recursos mejorando la integración de su Copilot con VS Code.
¿El fin de la programación tradicional?
La adopción masiva de herramientas como Cursor plantea una pregunta crucial: ¿Estamos asistiendo al fin de la programación tradicional? Para Karpathy, el uso de estos asistentes de IA es ahora tan esencial que "no puede imaginar volver a la codificación sin asistencia".
La empresa planea automatizar hasta el 95% de las tareas repetitivas en programación, lo que permitirá a los ingenieros centrarse en aspectos más creativos del desarrollo de software... al tiempo que abre las puertas del desarrollo de software a personas sin conocimientos técnicos.
Un ejemplo notable de esto es el de Faraday Robinett, una niña de ocho años (e hija del vicepresidente de Relaciones con los Desarrolladores de Cloudflare, eso sí) que utilizó Cursor para crear un chatbot de Harry Potter en solo unos minutos:
Sin embargo, este avance también ha generado preocupaciones sobre la pérdida de habilidades fundamentales. Algunos desarrolladores señalan que, si estuvieran aprendiendo a programar hoy, se sentirían tentados a depender en exceso de estas herramientas, dejando huecos en su conocimiento básico. Karpathy reconoció que, efectivamente, este es un problema real de esta clase de software.
Autenticación JWT y gestión de cookies en aplicaciones web
Comprensión de la autenticación JWT y la gestión de cookies en aplicaciones web
Al crear aplicaciones web modernas, especialmente aquellas que requieren autenticación de usuarios, uno de los métodos más utilizados es JWT (JSON Web Token) . En este artículo, analizaremos en profundidad qué es JWT, cómo funciona y explicaremos un fragmento de código que genera y establece un JWT como cookie.
Comencemos por entender los conceptos básicos.
¿Qué es JWT?
JWT son las siglas de JSON Web Token , que es una forma compacta y segura de representar información entre dos partes (el cliente y el servidor). En el contexto de una aplicación web, se utiliza para verificar la identidad de un usuario sin necesidad de comprobar sus credenciales (como una contraseña) repetidamente.
Imagine un JWT como un ticket que recibe un usuario después de iniciar sesión. Este ticket tiene cierta información sobre el usuario (como su ID) y está firmado por el servidor. El usuario conserva este ticket y lo presenta cada vez que solicita algo al servidor, de modo que el servidor sepa quién es.
Componentes clave de un JWT:
- Encabezado : contiene metadatos sobre el token, como el tipo (JWT) y el algoritmo utilizado para firmarlo.
- Carga útil : contiene los datos reales, como el ID del usuario (
userId), y puede incluir otros detalles. - Firma : es una firma única que se crea utilizando una clave secreta (conocida únicamente por el servidor). Garantiza que nadie pueda manipular el token.
Los JWT se utilizan normalmente para la autenticación en aplicaciones web. Cuando un usuario inicia sesión, el servidor genera un JWT y lo envía al cliente (normalmente en una cookie ). El cliente envía este token con cada solicitud, lo que permite al servidor verificar la identidad del usuario.
Desglose del código: Generación de un JWT y configuración del mismo en una cookie
Aquí hay un fragmento de código que ilustra cómo generar un JWT y almacenarlo en una cookie:

Vamos a desglosarlo y explicar cada parte.
1. Creación del JWT ( jwt.sign)
La primera parte de la función crea el JWT. Esto es lo que sucede:

jwt.sign({ userId }, process.env.JWT_SECRET, { expiresIn: "7d" }):Esto genera un JWT con eluserIdcomo parte de su carga útil. Elprocess.env.JWT_SECRETes una clave secreta almacenada en las variables de entorno que se utiliza para firmar el token, lo que garantiza su seguridad. El token está configurado para expirar en 7 días (expiresIn: "7d"), lo que significa que después de ese período, ya no será válido y el usuario deberá iniciar sesión nuevamente.
¿Por qué es esto importante?
- Este token se utiliza para autenticar al usuario. Cuando el usuario realice solicitudes futuras, enviará este token al servidor para que este pueda verificar su identidad.
Si omite este paso:
- Sin generar un token, el servidor no tendrá forma de saber quién es el usuario después de iniciar sesión. Esto significa que no podrá acceder a páginas ni realizar acciones que requieran autenticación, como ver su perfil o realizar una compra.
2. Almacenamiento del token en una cookie ( res.cookie)
Después de crear el token, debemos almacenarlo en algún lugar para que el navegador pueda enviarlo junto con cada solicitud. Para ello, lo guardamos en una cookie .

Esto es lo que significa cada parte:
res.cookie("token", token, {...}): Esto establece una cookie en el navegador del usuario. La cookie se llama"token"y almacena el JWT (token).httpOnly: true:Esto significa que el JavaScript que se ejecuta en el navegador no puede acceder a la cookie. Es una función de seguridad para evitar que scripts maliciosos roben el token.sameSite: "strict": Esto ayuda a proteger contra ataques CSRF (falsificación de solicitud entre sitios) . Garantiza que la cookie solo se envíe cuando el usuario interactúa directamente con su sitio (no cuando se lo engaña para que haga clic en un enlace de otro sitio).secure: process.env.NODE_ENV === "production":Esto garantiza que la cookie solo se envíe a través de conexiones HTTPS seguras en un entorno de producción. En el desarrollo, se puede enviar a través de HTTP para fines de prueba.maxAge: 7 * 60 * 60 * 1000:Esto establece el tiempo de expiración de la cookie en 7 días , al igual que el token.
¿Por qué es esto importante?
- La cookie es donde almacenamos el JWT para que el navegador pueda enviarlo automáticamente con cada petición. De esta forma, el servidor siempre sabe quién es el usuario sin que tenga que iniciar sesión nuevamente en cada carga de página.
Si omite este paso:
- Si no instala la cookie, el navegador no almacenará el token y el usuario deberá iniciar sesión nuevamente cada vez que actualice la página o visite una nueva página en su sitio. La sesión del usuario no se mantendrá y se cerrará la sesión constantemente.
El panorama más amplio: ¿Por qué utilizar JWT y cookies para la autenticación?
El uso de JWT y cookies para la autenticación tiene varias ventajas:
- Autenticación sin estado : los JWT permiten que el servidor permanezca sin estado . Esto significa que el servidor no necesita almacenar datos de sesión para cada usuario. En cambio, el JWT se envía con cada solicitud y el servidor puede verificarlo rápidamente.
- Seguridad : al utilizar una clave secreta para firmar el JWT, el servidor garantiza que el token no haya sido alterado. El almacenamiento del JWT en una cookie httpOnly agrega una capa adicional de seguridad, lo que evita que los scripts del lado del cliente accedan al token.
- Comodidad para el usuario : una vez que el usuario inicia sesión, no necesita volver a ingresar sus credenciales cada vez que carga una nueva página o vuelve a visitar el sitio dentro de los 7 días.
¿Qué sucede si omite la autenticación JWT?
Resumamos lo que sucederá si omite la generación del token o su configuración en una cookie:
- Sin token : si no genera un JWT, el servidor no sabrá quién es el usuario después de que inicie sesión. Como resultado, el usuario no podrá acceder a partes del sitio que requieren autenticación (como ver su perfil o realizar acciones como un usuario conectado).
- Sin cookies : aunque se genere el token, si no se almacena en una cookie, el navegador no lo recordará. El usuario perderá su estado de autenticación después de actualizar la página o visitar una nueva página, y se lo tratará como si hubiera cerrado la sesión.
Conclusión
En esta publicación, hemos explorado los conceptos básicos de los JWT y las cookies para la autenticación de usuarios en aplicaciones web. El código que analizamos le ayuda a:
- Generar un JWT que pruebe la identidad del usuario.
- Almacene este token en una cookie para que el navegador del usuario lo envíe automáticamente con cada solicitud.
Al utilizar JWT y cookies, puede administrar de manera eficiente y segura las sesiones de usuario, permitiéndoles permanecer conectados y acceder a áreas protegidas de su sitio.
Elimina los errores de Ruby y Rails más rápido
Pero la determinación no es el único activo que necesita un desarrollador. También se necesita información para depurar el código: ¿Cuáles son los síntomas y efectos del problema? ¿Cuál es su frecuencia? ¿Su generalización? ¿Su procedencia? La evidencia y los artefactos de un error (un volcado de memoria, un seguimiento de la pila, un registro o un caso de prueba) son invaluables.
Exploremos algunas técnicas y herramientas disponibles para los desarrolladores de Ruby y Rails para recopilar e investigar evidencia de un problema. Los datos no pueden reemplazar la tenacidad, pero pueden ayudar a facilitar sus esfuerzos (y ahorrarle sueño).
Utilice variables de entorno para optimizar sus herramientas en Rails
Rails ofrece algunas herramientas excelentes para examinar una aplicación en ejecución, incluido un registrador configurable para capturar diagnósticos propios y cualquier otro que desee agregar. Rails también ofrece un registro de consultas detallado para identificar el origen de las consultas de la base de datos y un registro de puesta en cola detallado para indicar dónde se ponen en cola los trabajos en segundo plano. Los dos últimos registros están habilitados de forma predeterminada en el entornodevelopment; puede habilitar ambos en otros entornos con dos instrucciones.

Una opción de registro menos conocida disponible desde Rails 7 anota cada consulta SQL con comentarios. Si agrega lo siguiente a config/application.rbcualquier archivo de entorno:

El registro de consultas se modifica automáticamente con el nombre de la aplicación, el nombre del controlador, el nombre de la acción o el nombre del trabajo en segundo plano. El siguiente ejemplo de salida proviene directamente de la guía de depuración de Rails :

Probablemente no desee habilitar todas estas funciones en producción. La generación de registros puede resultar costosa en términos de memoria y tiempo (recursos limitados para una aplicación bajo carga).
Sin embargo, existen excepciones. Es posible que desee habilitar brevemente una función a pedido, especialmente al depurar en los modos de desarrollo y prueba. En lugar de modificar el código (y quizás volver a implementarlo) para habilitar o deshabilitar un diagnóstico, use variables de entorno para controlar el estado. En algunos entornos, como Heroku, cambiar la configuración de una variable de entorno no obliga a una nueva implementación.
Por ejemplo, puede definir un conjunto de variables para controlar el registro y el nivel de detalle.
| Nombre de la variable | Objetivo | Valores |
|---|---|---|
COMMENTED_QUERY_LOG |
Habilitar comentarios en el registro de consultas | El valor que no está en blanco habilita la función |
LOG_ALL |
Habilitar todas las funciones de registro | El valor que no está en blanco habilita la función |
LOG_LEVEL |
Controlar el umbral para los mensajes de registro | debug, info, warn, error, fatal, unknown(del orden más verboso al menos verboso) |
VERBOSE_ENQUEUE_LOG |
Mostrar dónde se ponen en cola los trabajos | El valor que no está en blanco habilita la función |
VERBOSE_QUERY_LOG |
Mostrar el origen de cada consulta de registro activo | El valor que no está en blanco habilita la función |
Para mayor comodidad, cree una clase pequeña para consultar la configuración.

Ahora use las variables y el código para configurar las funciones de registro en config/application.rb:

Utilice su shell, un archivo dotenv, su integración continua o su plataforma de alojamiento e implementación para configurar cada opción. También puede utilizar una función a pedido. Simplemente inicie la aplicación con la variable de entorno definida en la línea de comandos.
Pon a punto a Puma para el desarrollo
Basándonos en la sección anterior, veamos cómo usar variables de entorno para adaptar la configuración de Puma para la depuración en el entorno de desarrollo.
Por lo general, Puma está configurado para maximizar el rendimiento en producción, ejecutando varios trabajadores y muchos subprocesos por trabajador. En desarrollo, se desea lo opuesto: un trabajador, un subproceso y un tiempo de espera muy largo para permitir la depuración interactiva. Cada uno de ellos es un parámetro que se puede ajustar.
Modificar config/puma.rbpara reflejar el siguiente código.

Ahora puede configurar las tres variables de entorno para controlar Puma en cada entorno. En el desarrollo, configure los valores para optimizar la depuración interactiva.

Si desea validar la configuración de Puma, configure la variable de entorno PUMA_LOG_CONFIG=truee inicie la aplicación. Puma emite su configuración activa al iniciarse.

Casualmente, la configuración predeterminada de Puma en la versión más reciente de Rails es similar a la que se muestra aquí (gracias a Nate Matykiewicz por el dato).
Ejecutar trabajos en segundo plano en línea
Una aplicación Rails de cualquier complejidad normalmente aprovecha los trabajos en segundo plano para ejecutar tareas que requieren un uso intensivo de recursos informáticos y que requieren una ejecución (relativamente) prolongada. Los trabajos en segundo plano se ejecutan de forma asincrónica, desconectados del ciclo de solicitud/respuesta. Los candidatos ideales para el procesamiento "fuera de banda" incluyen la generación de informes, el envío de correos electrónicos y la interacción con API de terceros. Pero la naturaleza asincrónica de los trabajos también complica la depuración.
Para simplificar la resolución de problemas, ejecute los trabajos inmediatamente en sus entornos de desarrollo y prueba locales. En el modo inmediato, los trabajos no se ponen en cola, sino que se ejecutan instantáneamente. Al ejecutarlos en "primer plano", puede establecer puntos de interrupción e inspeccionar el estado de forma interactiva.
Veamos un ejemplo en el que se utiliza Delayed Job , un backend de cola popular y fácil de administrar para Active Job . Delayed Job proporciona una configuración para habilitar la cola. De manera predeterminada, la configuración es truey los trabajos se ponen en cola como de costumbre. Sin embargo, si se configura en false, los trabajos se ejecutan inmediatamente.
Agregue el siguiente código a su aplicación en config/initializers/delayed_job.rb:

Si DELAYED_JOBS_DISABLE_JOB_QUEUESse establece en cualquier valor, se deshabilita la cola. Si la variable de entorno está en blanco o no está definida, se habilita la cola.
A continuación, en su shell, en la línea de comandos o en sus archivos dot, configúrelo
DELAYED_JOBS_DISABLE_JOB_QUEUESsegún sea necesario.

Establezca la variable de entorno en nada o elimine la variable de entorno para restaurar la puesta en cola.

No existen reglas para nombrar las variables de entorno. Elija nombres que le resulten significativos. Una convención útil para categorizar las variables es agregar un nombre de paquete como prefijo, como PUMA_y DELAYED_JOB_. El primero indica variables que afectan a Puma; el segundo connota variables utilizadas por Delayed Job.
Interactuar con llamadas de red
Al igual que los trabajos en segundo plano, las aplicaciones Rails también pueden consumir
interfaces de programación de aplicaciones (API). Las API brindan acceso a servicios externos, como bases de datos GraphQL, transacciones de comercio electrónico y fuentes de datos públicos.
A continuación se muestra otro ejemplo para emitir solicitudes y respuestas HTTP de forma condicional desde la Net::HTTPbiblioteca. Si la variable de entorno DEBUG_HTTPse establece en cualquier valor que no esté en blanco, la solicitud saliente y las respuestas entrantes se imprimen en STDOUT.

Para ver la actividad de la red, simplemente inicie la aplicación con
la variable de entorno definida en la línea de comando.

El métododebug? proporciona cierta abstracción de la implementación real del indicador. Este método, junto con el resto de este código, puede formar una clase base para todas las solicitudes de red, como se muestra en este resumen tomado del código de producción .
Añade Ruby Gems a tu caja de herramientas
El universo de las gemas de Ruby es vasto: es imposible abarcar todas las excelentes gemas disponibles para la depuración. En su lugar, veamos algunas herramientas que puede agregar hoy para obtener un impulso instantáneo. Es probable que agregue cada una de estas a todos sus proyectos.
awesome_printytable_printcrean inspecciones completas y legibles de estructuras de datos de Ruby, incluidos los modelos de Active Record. Puede usar cualquiera de las gemas en el código o desde la consola.
A continuación se muestra un ejemplo de un modelo emitido por awesome_printen la consola:

En lugar de p, utilice appara mostrar la salida mejorada. awesome_print enumera los atributos en orden alfabético, un atributo por línea, entre otras ventajas.
better_errorsreemplaza la página de error estándar de Rails con un seguimiento de pila mejorado, una lista de parámetros y una consola interactiva donde puede sondear el marco de pila y las variables en el lugar de la excepción. También puede vincular vínculos de código fuente a su editor favorito. Aquí se incluye el código para vincularbetter_errorsa Visual Studio Code:

Ejecúta export BETTER_ERRORS_EDITOR=vscodeen su shell y reinicie el servidor Rails. Ahora los vínculos a archivos se abren automáticamente en Visual Studio.
- Mantén las gemas
fakeryfactory_bot(o sus alternativas) tanto en los grupos de prueba como de desarrollo en Gemfile . Ambas son invaluables si necesitas generar datos rápidamente en la consola.

Una idea más: si utiliza AppSignal como herramienta de monitorización de aplicaciones, esta tiene funciones para interpretar los registros y detectar el origen de los errores.
La depuración es una habilidad
Depurar código es algo así como un arte y, como en cualquier esfuerzo creativo, cuanto más practiques, mejor te volverás.
Depure mientras trabaja en equipo con otro desarrollador, especialmente con uno experimentado. Si su compañero está dispuesto, piensen en voz alta juntos e intercambien ideas y puntos de vista.







