Embedded Software Engineer

BLACK DIAMOND NETWORKS INC
San Diego, United States of America
1 month ago

Role details

Contract type
Temporary contract
Employment type
Full-time (> 32 hours)
Working hours
Regular working hours
Languages
English
Experience level
Senior

Job location

San Diego, United States of America

Tech stack

ARM
Booting (BIOS)
C++
Communications Protocols
Nvidia CUDA
Computer Engineering
Software Debugging
Linux
Linux on Embedded Systems
Embedded Software
Ethernet
Field-Programmable Gate Array (FPGA)
Internet Protocol Security (IP SEC)
Linux kernel
Multiprocessing
OpenCL
PCI Express
Real-Time Operating Systems
Reduced Instruction Set Computing
RSA (Cryptosystem)
Software Configuration Management
Software Systems
Systems Integration
Universal Asynchronous Receiver/Transmitter
Network Switches
Serial Peripheral Interface
Information Technology
U-Boot

Job description

The essential functions include, but are not limited to the following:

  • Design and implement embedded software for multi-core processors integrated with FPGAs (e.g., Xilinx, Microsemi, Microchip, Vorago).
  • Develop software for ARM Cortex and RISC-V processor architectures.
  • Implement C/C++ code for embedded Linux, Linux networking, and real-time operating systems (RTOS).
  • Configure and customize Linux kernel, system settings, and bootloaders (e.g., U-Boot, GRUB).
  • Implement RFC-compliant networking and security protocols (e.g., IP, TLS, IPsec).
  • Integrate with interconnect standards such as SPI, I2C, UART, GPIO, PCI, PCIe, Ethernet, and SpaceWire.
  • Apply cryptographic systems (AES, RSA, ECDSA, ECDH) to ensure secure software solutions.
  • Lead the development and testing of reusable, high-quality embedded software modules.
  • Establish Secure System best practices are followed at the Architecture, Design and code levels.
  • Translate complex system and customer requirements into robust software designs.
  • Interpret various government security standards as they apply to the design and development of products.
  • Support integration and debugging of software with hardware platforms.
  • Track features, defects, and releases through formal software configuration and release processes.

Requirements

  • Bachelor's Degree in related field (Electrical or Computer Engineering, Computer Science) is required.
  • 9 or more years related experience in developing embedded software.
  • Advanced proficiency in C/C++ for embedded systems and low-level driver development.
  • Deep experience with embedded Linux systems, kernel configuration, and system bootloaders.
  • Strong understanding of RTOS-based development and real-time constraints.
  • Demonstrated experience interpreting schematics and hardware documentation for driver development.
  • Proficient in networking and communications protocols, including implementation of secure communication standards.
  • Familiarity with cryptographic principles and their application in embedded systems.
  • Experience with software integration, debugging, and system-level validation.
  • Familiarity with parallel-processing frameworks such as OpenCL or CUDA is a plus.
  • Excellent problem-solving, documentation, and technical communication skills.
  • Proven ability to mentor and supports junior engineers in a collaborative environment.
  • Active U.S. Security Clearance required.

Apply for this position