We are seeking an experienced Firmware Engineer to join our team to design, develop, and optimize firmware for embedded systems. The ideal candidate will have strong experience working with FPGA, ARM processors, and embedded software development using C, C++, and Python Scripting Skills. You will implement cyber security software / firmware solutions on ARM/FPGA based embedded systems.
Key Responsibilities:
● Develop and maintain firmware for embedded systems, specifically targeting FPGA and ARM-based processors.
● Design and implement real-time embedded systems using C, C++, and Python.
● Write and optimize device drivers, board support packages (BSP), and low-level hardware interfaces.
● Collaborate with hardware engineers to define system architecture and debug hardware/firmware integration issues.
● Implement, simulate, and test FPGA-based firmware using tools like Verilog, VHDL, or SystemVerilog.
● Work on bootloaders, and system diagnostics.
● Perform unit testing and integration testing for firmware, ensuring system performance and reliability.
● Contribute to code reviews, technical documentation, and design reviews.
● Troubleshoot and resolve firmware issues, optimizing system performance.
● Integrate and deploy AI/ML models (e.g., neural networks) into embedded devices for tasks such as anomaly detection, or predictive analytics.
Qualifications:
● Bachelor’s or Master’s degree in Electrical Engineering, Computer Science, or a related field.
● 3+ years of experience in firmware or embedded software development.
● Strong proficiency in C, C++, and Python.
● Experience with FPGA design and implementation using Verilog, VHDL, or similar hardware description languages.
● Hands-on experience with ARM processors (Cortex-A, Cortex-R, or Cortex-M series) and associated toolchains.
● Familiarity with embedded Linux and/or RTOS environments.
● Experience with hardware debugging tools such as JTAG debuggers.
● Strong understanding of real-time embedded systems, including hardware/software interfaces, peripherals (PCIE, UART, SPI, I2C), and memory management.
● Excellent problem-solving and communication skills.
Preferred Qualifications:
● Experience with PCIe, DDR, or high-speed interfaces.
● Experience with scripting languages like Python for automating testing and development processes.
● Knowledge of networking protocols and interfacing.
● Familiarity with secure boot, encryption, and other security measures in embedded systems.
● Experience with AI/ML frameworks such as TensorFlow Lite, PyTorch, or Keras, and knowledge of how to optimize them for embedded systems.
● Hands-on experience with neural network architectures (CNNs, RNNs, DNNs) and deploying them on resource-constrained environments.