Software Engineering Lead
DescriptionWe’re seeking a Software Engineering Lead to lead a team of software engineers, algorithm engineers, and FPGA/Firmware engineers in addressing emerging challenges in space sensor capabilities. The candidate will lead and work with a team of software engineers to develop sensor-based products, develop space-based sensor applications to control the sensor’s unique capabilities, and develop capabilities relevant to sensors in an embedded environment using Agile software development methodologies. As the software engineering lead, you will play a pivotal role in ensuring the capability, quality and reliability of our embedded software and hardware products. This role offers a fantastic opportunity to contribute to Leidos’ mission of delivering cutting-edge solutions for next-generation space capabilities.Primary ResponsibilitiesAs a software engineer lead, you will:
Lead the development of embedded software and firmware for sensor applications and programs.
Coordinate software efforts across multiple programs, including embedded software, ground support software, test equipment software, and software-in-the-loop (SWIL) and hardware-in-the-loop (HWIL) simulators.
Interface with the engineering teams to design, develop, and integrate sensor hardware and software, including sensor electronics, FPGA processing boards, DSP/ARM/PowerPC boards, PCI & VPX busses, health, and status circuits, cryocoolers, and sensor data interfaces.
Participate in development phases from detailed requirements flow down, trade studies, processing architecture design, hardware selection, firmware and software development, sensor and payload integration and test, spacecraft integration and test, and on-orbit support.
Analyze user requirements to derive software design and performance requirements.
Assist with developing and executing test procedures for software components.
Interface with system engineers and hardware engineers to derive software requirements and to obtain information on project limitations and capabilities, performance requirements and interfaces.
Integrate existing sensor-based software into new or modified sensors or operating environments.
Collaborate with signal processing engineers, software leads, and FPGA designers.
Experience with Continuous Integration and Continuous Delivery (CI/CD) tools such as Jenkins Agents or GitLab Runners.
Conduct design trades of complexity and performance between the payload’s optical front end, algorithm implementation, firmware architecture, and software architecture.
Investigate potential processing architectures that may incorporate GPUs, CPUs, FPGAs, SoC, and other cutting-edge technologies.
Mentor Junior software engineers in good engineering practices.
Basic QualificationsWe’re looking for Software Engineers possessing the basic software foundational skills such as:
Experience with Software Development LifeCycle (SDLC)
Understand and experience with Agile Principles and the Scrum framework.
Understand and perform software code development using C, C, or Java with the ability to write, maintain, and troubleshoot code.
Understand and experience with MatLab or Simulink
Understand and use different Real-time Operating Systems (RTOS), such as Windows, Linux OS or Greenhills OS
Strong debugging skills to analyze, identify, and isolate software defects and issues in a systematic methodology.
Familiarity with and understanding of security test tools and practices to identify vulnerabilities in software and static code analysis.
Experience with Compute Unified Device Architecture (CUDA) programming, familiarity with QT and Boost Libraries, and build systems such as CMake.
Proficient in using version control systems (e.g., GitLab, SVN) to manage source code in a defined branching structure.
Masters Degree in Electrical, Computer or Software Engineering, Mathematics, or Physics with 15+ years of relevant experience
U.S. citizen and must be able to obtain and maintain a DoD SECRET clearance.
Preferred Qualifications
Understanding software programming at the OSI Layer 1 – Physical layer.
Understanding of FPGA, General Purpose Processors (GPP), and Graphical Processor Units (GPU).
Understanding of containerization such as PodMan or Docker.
Knowledge of performance testing tools and methodologies to assess the performance and scalability of software applications.
Understanding of containerization technologies like Docker and orchestration with Kubernetes.
Experience with image processing algorithms, Kalman filtering, and closed-loop control systems.
Proficiency in lab tools such as scopes and logic analyzers.
Experience implementing interfaces such as 1GE Ethernet, 40G QSFP+, LVDS, and serial busses.
Experience with adaptive signal processing.
Experience with embedded C and RTOS. Green Hills, specifically, is a bonus.
Able to obtain a top-secret clearance.
Original Posting Date:2024-09-04While subject to change based on business needs, Leidos reasonably anticipates that this job requisition will remain open for at least 3 days with an anticipated close date of no earlier than 3 days after the original posting date as listed above.Pay Range:Pay Range $144,300.00 - $260,850.00The Leidos pay range for this job level is a general guideline onlyand not a guarantee of compensation or salary. Additional factors considered in extending an offer include (but are not limited to) responsibilities of the job, education, experience, knowledge, skills, and abilities, as well as internal equity, alignment with market data, applicable bargaining agreement (if any), or other law.#Remote#FeaturedjobREQNUMBER: R-00142984All qualified applicants will receive consideration for employment without regard to race, color, religion, sex, sexual orientation, gender identity, national origin, disability or veteran status. Leidos will consider qualified applicants with criminal histories for employment in accordance with relevant Laws. Leidos is an equal opportunity employer/disability/vet.