




Summary: The Embedded Systems Engineer designs, develops, and maintains firmware and software operating at the hardware boundary, spanning the full product development lifecycle. Highlights: 1. Design and implement low-level firmware in C/C++ for MCU and MPU architectures. 2. Develop for bare-metal and RTOS-based platforms, managing task scheduling. 3. Integrate IoT connectivity stacks and implement secure boot chains. **Role Overview** The Embedded Systems Engineer is responsible for the design, development, and maintenance of firmware and software that operates directly at the hardware boundary. This role spans the full lifecycle of embedded product development — from hardware bring\-up and bare\-metal firmware to secure connectivity, CI/CD pipelines, and production\-grade reliability. The ideal candidate is as comfortable reading a schematic or probing a signal with an oscilloscope as they are writing a Yocto layer, authoring a device driver, or configuring a CI pipeline for hardware\-in\-the\-loop testing. **Core Responsibilities** **Firmware \& Software Development** * Design and implement low\-level firmware in C/C\+\+ targeting MCU and MPU architectures, with strict attention to memory layout, interrupt latency, and deterministic behavior. * Develop for both bare\-metal environments and RTOS\-based platforms (including Zephyr, RTOS, FreeRTOS, or equivalent), managing task scheduling, synchronization primitives, and ISR design. * Write and maintain Linux kernel drivers, device tree overlays, and user\-space daemon code for Linux\-based embedded platforms. **Peripheral \& Protocol Integration** * Implement and debug communication interfaces including I2C, SPI, UART, CAN, USB, and low\-power wireless protocols (BLE, Wi\-Fi, LoRa, Thread). * Integrate IoT connectivity stacks including MQTT, CoAP, LwM2M, and TLS/DTLS for secure cloud communication. **Security Implementation** * Implement Secure Boot chains, hardware root\-of\-trust provisioning, and encrypted storage for production deployments. * Design and maintain OTA update systems with rollback capability, signature verification, and fail\-safe recovery logic. * Contribute to product threat modeling and apply mitigations at the firmware and communication layer. **Hardware Bring\-up \& Validation** * Lead or contribute to initial hardware bring\-up, using oscilloscopes, logic analyzers, and JTAG/SWD debuggers to validate timing, signal integrity, and peripheral behavior. * Read and interpret electrical schematics and component datasheets; collaborate closely with hardware engineers during board revisions. **Optimization \& Quality** * Profile and optimize code for minimal memory footprint, CPU utilization, and power consumption — particularly for battery\-constrained and energy\-harvesting devices. * Enforce coding standards (MISRA C/C\+\+ or equivalent) and integrate static analysis tools (cppcheck, Coverity, PC\-lint) into the development workflow. **Tooling, Automation \& CI/CD** * Write Python and shell scripts for build automation, test harnesses, firmware flashing pipelines, and protocol simulation. * Build and maintain CI/CD pipelines for embedded targets, including automated build verification and hardware\-in\-the\-loop (HIL) test integration via platforms such as GitHub Actions or Jenkins. **Documentation \& Testing** * Maintain thorough technical documentation covering architecture decisions, hardware interfaces, and failure modes. * Develop unit, integration, and system\-level test frameworks; participate in design reviews and contribute to post\-mortem analysis of field issues. **Technical Requirements** **Languages \& Programming** * Advanced embedded C/C\+\+: bitwise operations, memory\-mapped I/O, pointer arithmetic, volatile semantics, and link script management. * Practical Python proficiency for test automation, build tooling, protocol scripting, and data analysis of hardware measurements. **Operating Systems \& Platforms** * Embedded Linux: Yocto Project or Buildroot for custom image creation, device tree authoring, and kernel driver development. * RTOS: hands\-on experience with Zephyr RTOS and/or FreeRTOS — task management scheduler configuration, and porting to new hardware targets. **Hardware \& Debug** * Ability to read schematics and interpret component datasheets for independent software implementation. * Proficiency with hardware debugging tools: JTAG/SWD interfaces, oscilloscopes, logic analyzers, and in\-circuit programmers. * Cross\-compilation toolchain management: GCC/Clang ARM toolchains, CMake, Make, and linker script customization. **Protocols \& Connectivity** * Serial buses: I2C, SPI, UART, CAN, USB. * Wireless: BLE, Wi\-Fi. Familiarity with LoRa, Thread, or Zigbee is a plus. * IoT application layer: MQTT, CoAP, TLS/DTLS, and certificate\-based device authentication. **Security** * Secure Boot, hardware security modules (HSM/SE), encrypted firmware images, and OTA update mechanisms with rollback and signature verification. **Code Quality \& Tooling** * Static analysis tools: cppcheck, Coverity, or PC\-lint. * Version control: Git with structured branching workflows; experience contributing to CI/CD pipelines for embedded targets. Tipo de puesto: Tiempo completo, Temporal Pregunta(s) de postulación: * pretensiones salariales soles Idioma: * ingles (Obligatorio) Lugar de trabajo: Empleo remoto


