Senior Embedded Engineer
Coreforcetech · Atlanta, GA · 3 days ago
EngineeringFull-time
Responsibilities
- Lead and contribute to board bring-up activities for new hardware platforms, including bootloader configuration, memory initialization, and peripheral verification.
- Design, implement, and maintain firmware in C/C++ for bare-metal microcontrollers and embedded Linux systems.
- Develop, integrate, and optimize device drivers for peripherals such as sensors, radios, storage, displays, and communication interfaces (e.g., I²C, SPI, UART, USB, Ethernet).
- Implement and tune interrupt handlers, ISRs, and low-level scheduling mechanisms to achieve reliable, deterministic behavior.
- Perform performance tuning and resource optimization (CPU, memory, power consumption) to meet system constraints and battery-life targets.
- Use low-level debugging and measurement tools—such as oscilloscopes, logic analyzers, JTAG/SWD debuggers, and protocol analyzers—to diagnose and resolve hardware/firmware interaction issues.
- Collaborate with hardware engineers to review schematics and PCB layouts, ensuring firmware compatibility and identifying potential design risks early.
- Develop and maintain board support packages (BSPs), bootloaders, and OS configuration for embedded Linux and RTOS-based systems.
- Create and maintain unit and integration tests for firmware components, leveraging test harnesses, hardware-in-the-loop setups, and automated test frameworks where appropriate.
- Create and maintain robust error handling, logging, and diagnostic capabilities for field debugging and remote support.
- Conduct peer reviews of firmware design and implementation to maintain quality, consistency, and security best practices.
- Contribute to continuous improvement of engineering practices, build pipelines, and documentation related to firmware development.
- Collaborate with software engineering teams on Java-based device management services and firmware/cloud integration points.
Qualifications
- Significant professional experience developing embedded firmware for production hardware platforms.
- Strong proficiency in C/C++ for embedded systems, including memory management, concurrency, and real-time constraints.
- Hands-on experience with bare-metal development and at least one RTOS or embedded Linux distribution (e.g., Yocto, Buildroot, or similar).
- Demonstrated experience with board bring-up, including bootloader configuration, peripheral initialization, and hardware validation.
- Experience developing and debugging device drivers for common embedded interfaces (e.g., GPIO, I²C, SPI, UART, USB, CAN, Ethernet).
- Prioritization of practical experience implementing and tuning interrupt handlers and low-level timing mechanisms (timers, watchdogs, clock configuration).
- Proficiency with low-level debugging tools such as oscilloscopes, logic analyzers, JTAG/SWD debuggers, and serial consoles.
- Solid understanding of embedded systems fundamentals including real-time concepts, state machines, and resource-constrained design.
- Experience working in an agile/Scrum environment as part of a cross-functional engineering team.
- Familiarity with Git-based workflows, code review practices, and modern CI/CD tooling for firmware builds.
- Experience with wireless communication stacks (e.g., Wi-Fi, Bluetooth/BLE, LTE, proprietary RF) and associated firmware.
Preferred Qualifications
- Background with secure boot, cryptographic libraries, and secure firmware update mechanisms (OTA or field upgrades).
- Experience developing firmware for battery-powered or low-power devices, including power state management and energy profiling.
- Familiarity with manufacturing test, factory programming, and calibration processes.
- Exposure to scripting languages (e.g., Python) for test automation, tooling, or build orchestration.
- Experience integrating embedded devices with cloud services or backend systems via standard protocols (e.g., MQTT, HTTP, gRPC).
- Experience with Nordic Semiconductor BLE SDK and development workflows — including BLE profile implementation, OTA DFU, and debugging BLE communication issues across embedded and mobile boundaries.
- Working knowledge of Android development tools (ADB, logcat, Android NDK) for debugging firmware/mobile communication issues and understanding the mobile side of BLE integrations.
- Experience developing firmware for body-worn cameras, in-car video, evidence capture devices, or similarly rugged public-safety hardware.
- Familiarity with security/privacy and evidentiary integrity requirements for evidence capture (encryption, tamper resistance, secure key storage, audit logs, chain-of-custody concepts).
- Experience with embedded audio/video capture or camera subsystems (camera sensors, basic ISP concepts, video encoding such as H.264/H.265, audio capture) and optimizing for reliability, latency, and storage.
- Experience building always-on, field-deployed devices with tight power/thermal constraints and high reliability requirements.
- Exposure to GPS/GNSS, IMU, and event/trigger capture workflows (e.g., pre-event buffering, bookmarking) relevant to bodycam use cases.
- Familiarity with device offload and evidence management workflows (docking/offload, high throughput transfer, intermittent connectivity).
- Working knowledge of Java (Spring Boot or similar frameworks) for device-side services, companion applications, or firmware/cloud.