The software / firmware engineer designs, develops, modifies, tests, and debugs computer software (incl. graphical interfaces) or firmware programs on embedded processors (incl. digital signal processors), general purpose processors, graphics processors, field programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), or low-level devices using various languages to analyze and solve mathematical and scientific problems. The principal software / firmware engineer provides technical leadership on major tasks or projects where decision making and domain knowledge may have a critical impact on overall project implementation.
- Participates in all phases of scientific and engineering projects such as research, design, development, testing, modeling, simulating, training, and documentation
- Uses industry-standard tools applicable to the associated engineering discipline (e.g., C/C++, Python, Matlab, various compilers, firmware/HDL toolchains) to perform engineering tasks; develops new tools as needed to support project specific work when industry-standard tools are insufficient
- Develops presentation material and documentation supporting engineering activities and communicates solutions to project stakeholders
- Leads or assists in formulating architectural design, functional specifications, interfaces and documentation
- Uses detailed specifications and adapt standardized techniques, methods, criteria and precedents to develop or modify portions of a system or program
- Designs, implements, and conducts test and evaluation procedures to ensure system requirements are met
- Supports or leads all phases of risk and opportunity management activities
- Addresses problems of systems integration, compatibility, and multiple platforms
- Leads or supports development and refinement of concepts of operations and operational plans, through modeling, simulation, or operational software prototyping that make optimum use of existing and planned systems to meet mission needs
- As required, participates in the development of system concepts, system requirements, concepts of operations, and training requirements in every phase of the system development process
- Develops component, unit, subsystem, and integrated mission-level test, verification, and validation requirements and strategies
- Works directly with customer technical personnel and supporting subject matter experts to ensure requirements, operational concepts, and systems objectives are captured and met as intended
- Performs component, unit, subsystem, and integrated mission-level trades and analysis activities including modeling and simulation to predict expected system performance and determine solutions which will meet project objectives balancing cost, schedule, and performance
- Performs high-level through detailed functional and performance systems analysis, design, integration, and implementation that account for test and operational environments
- Able to quickly learn the basics of new tools, technologies, and development aspects of adjacent domains to support integrated engineering activities
- Bachelor's degree in an engineering discipline such as computer, software, or similar engineering discipline with 6+ years of experience
- Can work independently and as part of a team of his/her peers
- Has experience setting and performing to technical milestone entrance/exit criteria
- Comfortable presenting to diverse audiences including technical and non-technical experts and peers
- Experience with Agile/Scrum methods along with Gitlab, continuous integration, containers, and Kubernetes
The ideal candidate should have the following experience:
- Has direct space systems development experience
- Has worked on multi-disciplinary teams of spacecraft engineers
- Directly worked on multiple spacecraft programs performing system design and/or testing
- Has developed software release plans and associated documentation to manage software development activities
- Experience developing software/firmware applications for GPUs and/or other vector processing systems
- Has led Agile / Scrum development efforts to successful delivery of software/firmware end items for space systems
- Extensive experience with Xilinx tools (or similar), C/C++, Python, Matlab/Simulink, and Linux
- Has developed and used software metrics to guide development and design of large software systems
Falcon ExoDynamics believes in the diversity of teams and experiences. We are proud to be an Equal Opportunity/Affirmative Action Employer. We encourage veterans, disabled veterans and disabled individuals to apply for any open position for which they feel they are qualified.
- Medical, Dental, and Vision Coverage
- Flexible Work Environment
- Holidays, Sick Leave, and Vacation Time
- Bonuses
- 401k Retirement Plan with Matching and Profit Share
- Low Overhead to Get What You Need to Get the Job Done
- U.S. Citizenship Required
- Must be able to obtain a clearance
- Current/Active TS/SCI Preferred
