📍 Guatemala City, Guatemala 🇬🇹
Programador de Firmware / Sistemas Embebidos
Objetivo del puesto
Desarrollar, mantener y optimizar software de bajo nivel para sistemas embebidos, microcontroladores y dispositivos electrónicos, trabajando directamente con hardware, sistemas operativos en tiempo real y arquitecturas de microcontroladores.
Requisitos indispensables
• Lenguaje C: experiencia programando en C para sistemas embebidos, microcontroladores o aplicaciones de bajo nivel.
• RTOS: conocimiento en sistemas operativos en tiempo real, incluyendo tareas, timers, prioridades, interrupciones, colas, semáforos y sincronización.
• Assembly: capacidad para leer, interpretar o escribir código en Assembly cuando sea necesario para optimización, depuración o trabajo de bajo nivel.
• Arquitecturas de microcontroladores/procesadores: conocimiento o experiencia con arquitecturas como Xtensa, AVR y RISC-V. Se valorará experiencia práctica con periféricos, registros, interrupciones y comunicación con hardware.
Conocimientos deseables
• Python: para automatización, scripts, pruebas, herramientas internas o procesamiento de datos.
• SQL: conocimiento básico o intermedio para consultas, manejo de bases de datos o integración con sistemas.
• POSIX / Linux: familiaridad con entornos tipo Unix/Linux, procesos, archivos, sockets, threads o APIs POSIX.
• Electrónica básica: capacidad para entender esquemáticos simples, señales digitales/analógicas, comunicación entre componentes y diagnóstico básico de hardware.
Conocimiento opcional
• Dart: se tomará como un plus, especialmente si el puesto puede involucrar integración con aplicaciones móviles, interfaces o herramientas desarrolladas en Flutter/Dart.
Responsabilidades principales
• Desarrollar firmware para microcontroladores y sistemas embebidos.
• Programar en C para dispositivos de bajo nivel.
• Implementar y mantener soluciones basadas en RTOS.
• Trabajar con periféricos, buses de comunicación e interrupciones.
• Depurar problemas de software y hardware.
• Optimizar código en rendimiento, memoria y estabilidad.
• Leer documentación técnica, datasheets y manuales de arquitectura.
• Colaborar con el equipo de electrónica, software o ingeniería.
• Crear herramientas de prueba o automatización cuando sea necesario.
• Documentar el código y los procesos técnicos desarrollados.
Perfil ideal del candidato
Buscamos una persona analítica, ordenada y con interés fuerte en sistemas embebidos. Debe sentirse cómoda trabajando cerca del hardware, entendiendo cómo interactúa el software con microcontroladores, sensores, periféricos y sistemas electrónicos.
El candidato ideal no solo programa, sino que también entiende cómo funciona el dispositivo a nivel interno.