Embedded Software Engineer
As an embedded software engineer, you will join a collaborative team to develop innovative satellite solutions. You will be responsible for software development during all phases of the software development cycle, including requirements, design, implementation, test, integration, and documentation in a fast-paced environment.
โข Experience in embedded Linux software, drivers, file systems and kernel development
Outstanding proficiency in C/C++ on resource-constrained embedded platforms
โข Strong Linux filesystem, Kernel, Shell scripting, IPC, watchdog timers experience
โข Experience in coding with NVIDIA GPU and CPU/GPU processing
โข General user-level and Linux administration experience
โข Experience with networking, concurrency, and distributed systems
โข Experience with open-source environments and development tools, such as Linux, GNU cross compiler toolchains, and IDEs (e.g., Eclipse) and common open-source configuration management and test tools, such as subversion, git, mercurial, GDB, perf
โข Knowledgeable in the area of communication protocols at all layers, such as I2C, SPI, UART, and TCP/IP protocols
โข Able to use tools such as oscilloscopes, logic analyzers, and on-chip debuggers
โข Software analysis, code analysis, requirements analysis, software review, identification of code metrics, system risk analysis, software reliability analysis and documentation
โข Experience in implementing high-reliability systems, systems in extreme environments (aerospace experience is a plus), sensors & imaging systems, FPGAs, logic analyzers and oscilloscopes
โข Proficiency reading hardware specifications and schematics
โข Knowledge of operating systems concepts.
โข Proficiency debugging embedded software systems
โข Experience in test definition and execution
โข History of coordinating development activities within teams and cross-group collaborations
โข Experience with FPGA programming is a plus
โข Aerospace Experience a plus
Responsibilities include:
โข Design, develop and maintain embedded software for spacecraft subsystems, test software applications, device drivers, middleware on Linux or other RTOS
โข Participate in software requirements generation, design, implementation, and testing discussion with multiple team members
โข Maintain new and pre-existing software solutions to enhance feature sets and to consistently improve overall stability
โข Participate in team discussions involving satellite architecture and design for ongoing and future projects
โข Assist in design of hardware testing and verification software for use in the production process
โข Work in a small team environment closely with satellite hardware, sensors and system engineers to develop optimal solutions
โข Assist in troubleshooting software related issues associated with 3rd party software and hardware sensors and products.
โข Attend project and subsystem engineering and management meetings when requested
โข Report design and production status weekly to project manager
โข Communicate issues and concerns to team members and managers and support planning to resolve technical, schedule, safety and cost issues
โข The engineer will follow basic design standards to ensure acceptable performance in the satellite, launch, and space environment.