Firmware Engineer

Overview

Remote
Depends on Experience
Full Time
10% Travel

Skills

C
C +
C + +
Embedded Systems
FPGA
Firmware
I2C
Perl
Python
RTOS
Tcl
UNIX
VHDL
Verilog
Zigbee
oscilloscopes
logic analyzers
microcontrollers

Job Details

Firmware Engineer

The Firmware Engineer will be responsible for designing, developing, testing, and maintaining embedded software that operates on microcontrollers and other hardware platforms. The primary focus will be on creating efficient, reliable, and scalable firmware solutions to enable the functionality of various electronic devices and systems. The candidate is expected to work with teams of diverse backgrounds including mathematicians, cryptographers, and physicists, as well as support projects requiring an in-depth knowledge of fabrication processes, device physics knowledge.

The candidate must be able to obtain and maintain a US Government Security Clearance.

Key Responsibilities

  1. Firmware Development: design, implement, and optimize embedded software to control and interact with hardware components, peripherals, and sensors. This involves writing code in low-level languages such as C, C++, or other assembly language.
  2. Embedded Systems Programming: develop firmware for microcontrollers, DSPs, FPGAs, or other specialized hardware platforms, taking into account resource constraints, real-time performance, and power efficiency.
  3. Device Drivers: create and integrate device drivers to facilitate communication between firmware and hardware components, such as sensors, actuators, communication interfaces (UART, I2C, SPI, USB), and memory systems.
  4. System Integration: work closely with hardware engineers and software developers to ensure seamless integration of firmware with electronic hardware and application software.
  5. Firmware Testing: develop and execute test plans for firmware components, including unit testing, integration testing, and system-level testing, to ensure reliability, functionality, and compliance with specifications.
  6. Performance Optimization: identify and resolve checkpoints in firmware code, optimize algorithms, and reduce power consumption to enhance overall system performance.
  7. Firmware Debugging: use debugging tools, oscilloscopes, logic analyzers, and other hardware/software debugging techniques to troubleshoot and resolve firmware issues.
  8. Documentation: prepare comprehensive technical documentations, including design specifications, test plans, and user manuals, to ensure smooth knowledge transfer and maintainable code.
  9. Firmware Maintenance: continuously monitor and update firmware to address bug fixes, performance enhancements, security patches, and compliance with industry standards.

Position Requirements

  • Ability to obtain and maintain a US government security clearance
  • Bachelor's or master's degree in electrical or computer engineering is preferred
  • Solid understanding of embedded systems, microcontrollers, and real-time operating systems (RTOS)
  • Proficiency in programming languages such as C, C++, Verilog, VHDL, scripting languages such as Tcl, Perl, Python, UNIX operating system, and Markdown
  • Experience with firmware development tools, IDEs, and version control systems
  • Familiarity with hardware description languages (HDL) like VHDL or Verilog
  • Knowledge of communication protocols (UART, I2C, SPI, USB, Ethernet) and wireless technologies (Bluetooth, Wi-Fi, Zigbee)
  • Strong problem-solving skills and the ability to debug complex firmware issues
  • Familiarity with security principles and encryption algorithms
  • Familiarity with semiconductor process technologies like Field Programmable Gate Arrays (FPGA), Application-Specific Integrated Circuits (ASIC)
  • Strong documentation skills and the ability to present and explain complex ideas
  • Remain current with security techniques, trends, advancements, and nascent technology

About EndoSec LLC