Ingeniero de Software para Desarrollo de Escritorio
Sobre el puesto
Como Ingeniero de Software de Desarrollo de Escritorio, diseñarás, construirás y mantendrás aplicaciones de escritorio de alta calidad para plataformas Windows, macOS y/o Linux. Trabajarás estrechamente con product managers, diseñadores, desarrolladores backend y QA para ofrecer experiencias de escritorio rápidas, fiables y pulidas a nuestros usuarios. Asumirás la responsabilidad del ciclo de vida del desarrollo de escritorio, desde las decisiones de arquitectura y el desarrollo de características hasta las pruebas, empaquetado, distribución y soporte post-lanzamiento, asegurando al mismo tiempo la consistencia, el rendimiento y la calidad en todos los sistemas operativos soportados.
Gestión
Responsabilidades
- Diseñar, desarrollar y mantener aplicaciones de escritorio en plataformas Windows, macOS y/o Linux
- Crea código limpio, modular y bien estructurado que funcione de forma fiable en una variedad de configuraciones de hardware y versiones del sistema operativo
- Colaborar con diseñadores de UI/UX para implementar interfaces de escritorio intuitivas, responsivas y visualmente consistentes
- Integrar APIs de backend, servicios locales y bibliotecas de terceros en aplicaciones de escritorio
- Optimizar el rendimiento de la aplicación, el tiempo de arranque, el uso de memoria y la eficiencia de recursos
- Asegurarse de que las aplicaciones cumplan con las directrices y estándares específicos de cada plataforma para entornos Windows, macOS y Linux
- Escribir y mantener pruebas de unidad, integración e interfaz para garantizar la estabilidad y calidad de la aplicación
- Identificar, depurar y resolver defectos específicos de escritorio en sistemas operativos, configuraciones de hardware y entornos de sistema
- Participar en revisiones de código, proporcionando y recibiendo retroalimentación técnica constructiva
- Gestionar los procesos de compilación, empaquetado y distribución de escritorio, incluyendo instaladores, actualizaciones automáticas y versionado de versiones
- Monitorizar aplicaciones de producción para detectar fallos, degradación del rendimiento y problemas reportados por los usuarios
- Colaborar con QA para apoyar ciclos exhaustivos de pruebas de escritorio, incluyendo pruebas funcionales, de regresión y de compatibilidad
- Contribuir a discusiones sobre arquitectura de escritorio y decisiones técnicas de diseño
- Mantener la documentación de bases de código de escritorio, procesos de compilación y flujos de trabajo de liberación
- Participa en ceremonias ágiles, incluyendo monólogos, planificación de sprints, retrospectivas y demostraciones
- Mantente al día con las tendencias de desarrollo de escritorio, actualizaciones de plataformas y directrices cambiantes del sistema operativo
Requisitos
- La fluidez en inglés escrito y hablado es obligatoria
- Licenciatura en Informática, Ingeniería de Software o un campo relacionado, o experiencia práctica equivalente
- 3+ años de experiencia profesional en desarrollo de aplicaciones de escritorio
- Fuerte dominio de uno o más frameworks o lenguajes de desarrollo de escritorio, como NET Maui, Electron, Qt, .NET/WPF o similares
- Sólido conocimiento de al menos un lenguaje de programación principal utilizado en el desarrollo de escritorio, como C++, C#, Java, Rust, Python o JavaScript/TypeScript
- Experiencia en la creación y mantenimiento de aplicaciones de escritorio multiplataforma dirigidas a Windows, macOS y/o Linux
- Familiaridad con patrones de diseño de interfaces de escritorio y directrices específicas de interfaz humana para Windows y macOS
- Experiencia integrando APIs RESTful y gestionando datos locales y remotos dentro de aplicaciones de escritorio
- Conocimiento del empaquetado de aplicaciones de escritorio, creación de instaladores y mecanismos de actualización automática
- Comprensión de las mejores prácticas de seguridad de escritorio, incluyendo cifrado local de datos, almacenamiento seguro de credenciales y sandboxing
- Experiencia con control de versiones usando Git y flujos de trabajo de desarrollo colaborativo
- Sólidas habilidades de depuración y perfilado de rendimiento utilizando herramientas nativas de plataforma y de terceros
Habilidades preferidas
- Experiencia tanto con enfoques nativos como multiplataforma de desarrollo de escritorio
- Familiaridad con las canalizaciones CI/CD para compilaciones y lanzamientos de aplicaciones de escritorio
- Exposición a los requisitos de firma de código, notarización y distribución para Windows y macOS
- Experiencia en comunicación entre procesos, servicios en segundo plano o integraciones a nivel de sistema
- Conocimiento de los estándares de accesibilidad e implementación en plataformas de escritorio
- Familiaridad con herramientas de informes de fallos y telemetría, como Sentry, BugSnag o similares
- Experiencia con frameworks de actualización automática como Squirrel, Sparkle o servicios de actualización personalizados
- Comprensión de la arquitectura offline-first y soluciones de bases de datos locales, como SQLite, LevelDB o similares
- Exposición a integraciones de hardware como periféricos, cámaras o dispositivos biométricos
