Embedded Software Engineer
Role details
Job location
Tech stack
Job description
Today, Electronic Warfare is a growing enterprise - protecting the warfighter and our nional security against ever-adapting thres. Our Electronic Warfare division currently has an exciting opportunity for an Embedded Software Engineer to perform design, development, and hardware/software integrion in San Diego, CA.
Leidos is a DOD leader in electronic design and chiplet manufacture. Our division primarily focuses on research & development and advanced prototyping, transforming ste-of-the-art processing algorithms into real-time software systems. Projects involve small multi-disciplinary teams of engineers working together in spiral or agile development environments to meet aggressive customer schedules aimed near-term field demonstrions. Leidos utilizes its proprietary design methodology for hardware software co-design to manufacture custom SoC and IP for high performance applicions.
In this role, the Embedded Software Engineer will build high-performance software to meet extreme system requirements. They will be responsible for designing and implementing components to support software development kits th are delivered directly to end users to support quick adoption and ease of use for novel SoC products. This role will require the ability to deeply understand hardware architectures to execute validion and verificion testing, a crucial step to ensure hardware and software performance meets customer expections.
Join a team of experts in implementing high-performance signal processing on custom system-on-chip (SoC) hardware and building the tools th enable analysis, rapid prototyping, and deployment of cutting-edge algorithms.
The successful candide will be responsible for:
- Contributing to the design and development of advanced embedded systems as a part of multidisciplinary teams. These teams are made up of other software team members and subject mter experts from the areas of systems engineering, hardware, firmware, RF front-end design, and signal processing.
- Developing software for a variety of microarchitectures, including DSP, ARM, or RISC-V
- Developing software for multi-core embedded systems ranging from bare metal to minimal real-time opering systems to Linux environments
- Reading and comprehending dasheets to understand expected hardware operion
- Building and documenting test plans, test procedures, and software requirements specificions
- Writing low level code (e.g. C) to interface with Control Stus Registers (CSRs) and hardware components
- Writing software to valide hardware performance and operion under nominal and stress conditions
- Building software using test driven development (TDD) methodologies
- Documenting software performance results against key performance requirements for da-plane and control-plane processing
- Understanding software use in high-level system design for real time software in operional systems
- Clearly communicing technical details of software APIs and test results to internal and external engineers
Requirements
- Bachelor's Degree in Computer Engineering, Electrical Engineering, or Computer Science, or reled discipline
- 4+ years of software development experience, including strong experience in C/C++ software development for embedded systems
- Experience using Integred Development Environments (e.g. VS Code, Eclipse)
- Experience with build tools (e.g. GCC, CMake, or Make)
- Strong understanding of hardware-software interaction and basic computer architecture (e.g. Stack, Heap, Pointers)
- Experience with version control systems (e.g. Git, Subversion) and continuous integrion software tools (e.g. Jenkins)
- Experience with software testing tools and methodologies
- Experience in creing and maintaining technical documention for developed software
- Ability to communice and share ideas, concepts, and designs with a team of engineers
- Understanding of unit test frameworks and test-driven development practices
- Comfortable working in Linux development environments
- Demonstred ability and motivion to continually learn new technical skills and concepts
** Must have active Secret level security clearance with the ability to obtain a TS/SCI **
Bonus educion/experience:
- Master's Degree in Computer Engineering, Electrical Engineering, Computer Science, or equivalent
- Active security clearance higher than the Secret level
- Experience with other programming languages such as Python, MATLAB, or another OOP language
- Ability to debug embedded systems using tools like oscilloscopes and logic analyzers
- Experience developing drivers for hardware interfaces (e.g. GPIO, I2C, SPI, UART, PCIe)
- Experience with multiple embedded instruction set architectures (e.g. ESP32, Raspberry PI, Arduino, RISCV)
- Experience using hardware debugging software and tools such as OpenOCD, J-Link, or SEGGER