← Todos los episodios S4 · Episodio 5

4x05 | Charlando con #SoftwareEngineers de #GoodNotes. La profesionalidad, CRQS en apps, testing...

· 01:15:00 · Tomás Ruiz, Pedro Gómez

Resumen

La charla ofrece una visión profunda de los desafíos técnicos y la cultura de trabajo en una de las aplicaciones de toma de notas más populares del mundo, abordando desde su arquitectura offline-first hasta su proceso de selección.

Temas principales:

  • Profesionalidad y Cultura de Equipo: Discutimos la importancia de mantener un ambiente de trabajo profesional en lugar de uno “familiar”, donde el respeto y los límites claros fomentan un entorno más productivo y saludable. Aunque la empresa organiza actividades para fomentar la camaradería, la base es el profesionalismo.
  • Arquitectura Offline-First y Multiplataforma: Explicamos cómo GoodNotes maneja la sincronización de datos y la resolución de conflictos en un entorno offline-first utilizando arquitecturas como CQRS (Command Query Responsibility Segregation) y CRDTs (Conflict-free Replicated Data Types) para garantizar la consistencia de los datos de manera determinista.
  • Reutilización de Código con WebAssembly: Pedro Gómez detalla cómo su equipo utiliza WebAssembly (Wasm) para compilar la base de código original de Swift y reutilizarla en otras plataformas como Android, Windows y la web. Esto presenta desafíos únicos, ya que Wasm no tiene acceso directo a la UI, el disco o la red, lo que obliga a una arquitectura muy limpia y desacoplada.
  • Reconocimiento de Escritura y Machine Learning: Tomás Ruiz habla sobre el equipo interno de Machine Learning que desarrolla los algoritmos para el reconocimiento de escritura a mano en múltiples idiomas, la detección de formas geométricas e incluso el reconocimiento de emojis dibujados a mano, habiendo migrado de un SDK de terceros a sus propias soluciones.
  • Estrategia de Testing: Abordamos cómo el equipo de GoodNotes prueba su aplicación. En iOS, se apoyan en tests unitarios y de screenshots para validar la UI en diferentes escenarios (idiomas, modo oscuro). Para la versión multiplataforma, se realizan tests end-to-end más completos debido a la necesidad de un navegador para ejecutar el módulo de Wasm.
  • Proceso de Selección: Los invitados describen el riguroso proceso de contratación en GoodNotes, que incluye una prueba en HackerRank, entrevistas técnicas y de comportamiento. Destacamos la humildad y la capacidad de colaborar como “red flags” importantes a la hora de evaluar a un candidato.
  • Metodologías de Trabajo: Explicamos cómo los equipos trabajan en ciclos de dos meses, con una planificación flexible que se adapta a las necesidades. Utilizan frameworks de decisión como RAPID (Recommend, Agree, Perform, Input, and Decide) para tomar decisiones técnicas de forma colaborativa y documentada.