Programador de Firmware / Sistemas Embebidos

Aura Agrotek 

📍 Guatemala City, Guatemala 🇬🇹

full-time
mid-level
Posted —

Key Skills

CRTOSAssemblyMicrocontrollersPython

Industry

Agriculture TechnologyConsumer Electronics

Job Description

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.