Leidos is a DOD leader in electronic design and chiplet manufacture, seeking an Embedded Software Engineer to perform design, development, and hardware/software integration. The role involves building high-performance software for embedded systems and collaborating with multidisciplinary teams to meet customer requirements.
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 matter 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 operating systems to Linux environments
Reading and comprehending datasheets to understand expected hardware operation
Building and documenting test plans, test procedures, and software requirements specifications
Writing low level code (e.g. C) to interface with Control Status Registers (CSRs) and hardware components
Writing software to validate hardware performance and operation under nominal and stress conditions
Building software using test driven development (TDD) methodologies
Documenting software performance results against key performance requirements for data-plane and control-plane processing
Understanding software use in high-level system design for real time software in operational systems
Clearly communicating technical details of software APIs and test results to internal and external engineers
Qualification
Required
Bachelor's Degree in Computer Engineering, Electrical Engineering, or Computer Science, or related discipline and 2 years of experience or a MS with relevant experience
Strong software development experience, including experience in C/C++ software development for embedded systems
Experience using Integrated 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 integration software tools (e.g. Jenkins)
Experience with software testing tools and methodologies
Experience in creating and maintaining technical documentation for developed software
Ability to communicate 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
Demonstrated ability and motivation to continually learn new technical skills and concepts
Must have active Secret level security clearance with the ability to obtain a TS/SCI
Preferred
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