Salary
💰 $90,100 - $121,900 per year
Tech Stack
AssemblyAzureJ2EEJavaLinuxMavenTCP/IPUnix
About the role
- Supports the design, development, test, and integration of software models to emulate the behavior and functionality of hardware components or systems to provide an all-software test and integration environment
- Partners with hardware engineers by contributing to the identification and review of requirements and specifications for the hardware being emulated
- Supports the development, automation, test, integration, and administration of emulation strategies and technologies
- Supports the development of verification plans, test procedures and test environments, executing the test procedures and documenting test results for emulation technologies
- Supports collecting and analyzing in-use product data to design new or enhance existing products
- Contributes to the identification, debugging, and resolution of issues to ensure the reliability and efficiency of software products
- Supports advising on software domains related to emulation technologies
- Supports creating and updating policies, practices and processes for emulation and virtualized resource management
- Supports implementing current and emerging technologies, tools, frameworks and changes in regulations relevant to hardware emulation
- Supports hardware emulation project management activities
Requirements
- Ability to obtain Secret U.S. Secret clearance, final post-start
- 2+ years of experience in testing or programming software written in C or C++
- 2+ years of experience in real-time, near real-time, or embedded systems
- 2+ years of experience with release tools (Azure DevOps, Artifactory, Gitlab, Maven), configuration management, monitoring, virtualization and containerization
- 2+ years of experience do you have with mission/safety-critical software development
- Familiarity with KVM and QEMU
- Familiarity with GitLab
- Understanding of ARM, PowerPC, or x86 microprocessor architectures
- Familiarity with common avionics data buses and interfaces
- Familiarity with Field Programmable Gate Arrays (FPGAs) and hardware description languages (HDL)
- Ability to collect, organize, synthesize, and analyze data; summarize findings; develop conclusions and recommendations
- Ability to comprehend and describe the structure of a computer system made from multiple component parts
- Knowledge to design, develop, test and debug software programs without a user interface (UI) that will manage hardware components or peripherals attached to a computer
- Knowledge of platform's hardware, bus interfaces used by hardware to communicate with host and location of device driver software
- Knowledge to write kernel mode driver, initialize software and control hardware
- Knowledge of programming languages (e.g., C#, Java, J2EE, J2ME, C++, Visual Basic, C, Assembly, Ladder Logic, NC Programming, Matlab)
- Knowledge of communications, networking, and protocols (e.g., TCP/IP, FTP, XML, WAP)
- Knowledge of computing equipment and its operating systems (e.g., Windows, Unix, Linux)
- Knowledge of software development and testing tools (e.g., editors, compilers, linkers, desktop simulations, configuration management tools, requirements management tools)
- Ability to apply knowledge of database engines to the design of databases and reporting structures
- Ability to integrate hardware and software components into a functional system
- Knowledge of software testing and usability theory
- Ability to write and execute test scripts and perform usability analyses
- Knowledge of operating system concepts (processes, threads, synchronization, memory management, file systems, networking)
- Knowledge of hardware architecture (CPU, memory, buses, devices, interrupts)
- Knowledge of domains, characteristics, constraints and products that require real-time software
- Ability to design and develop software testing processes for different units, modules or components
- Knowledge of System Reverse Engineering, including debugging, disassembling, and code analysis
- Knowledge of virtualization and extensive experience designing, developing, implementing and managing virtual environments
- Ability to create a virtual machine using hardware emulations of computer systems
- Travel: 10%
- Must meet export control compliance requirements (U.S. Person as defined by 22 C.F.R. §120.15)
- Security Clearance: position requires ability to obtain U.S. Security Clearance; U.S. Citizenship required