Software Principal Engineer- BIOS Automation Development
13 Dec 2019
The team "Client Product Group" is responsible for building and delivering manageability software for Enterprise Client line of business (eg. Laptops, Workstations, Desktops etc.)
As a Software Principal Engineer, responsible for the design and development activities associated with methods for validating hardware/software systems, and broader solutions. Prepares test and diagnostic programs, designs test fixtures and test tools, and completes validation specifications and procedures for new and changes to existing products. Plans the labor, schedules, equipment, and software required for validating and evaluating our solutions. Uses current product performance information and other means to gauge customer usage to the product development teams. Principal
- Responsible for testing UEFI FW and features.
- Responsible for all software and UEFI FW related issues during the planning and validation stages of the program. You will be working on next generations products and will have an opportunity to gain experience on best in the world client technologies.
- Your responsibilities may include but not be limited to: Understand feature requirements, architecture and design UEFI FW testing, UEFI FW code debugging UEFI FW testing with other server HW and SW platform components, like CPU, PCH, FW, OS etc.
- Participates in the software development lifecycle, which includes research, new development, modification, security, correction of errors, reuse, re-engineering and maintenance of software products
- Responsible for the delivery of products within budget, schedule and quality guidelines.
- Works with the team to develop, maintain, and communicate current validation schedules, timelines and development status.
- Manages or utilizes software that is built and implemented as a product, using best-in-class development process/lifecycle management (ex: Agile, Waterfall).
- Creates technical documentation of software products/solutions. Assists with the validation and review of end user and technical end user documentation.
- Protects Intellectual property by working appropriate legal elements (ex: procurement, patents, opensource).
- Develops and implements plans and tests for product quality or performance assurance.
- Be familiar with Window security features
- Technical understanding of common security vulnerabilities and risks, as well as countermeasures and compensating controls.
- 9 to 14 years of relevant experience or equivalent combination of education and work experience.
- Experience in programming in C, Embedded Programming in C and C++
- Experience in Automation languages in Python, Micro Python, Perl
- Knowledge in X86 / X64 Architecture and Instruction set.
- Experience in using PCIe Analyzer, Wireless sniffer
- Experience in embedded OS driver specifically on Network, USB, SATA
- Experience in Filesystem drivers specifically NTFS, FAT32, Ext3 systems.
- Test Driven Development including Unit Tests environments for C
- Knowledge of Intel architecture little endian, x86, x64
- Remote debugging experiences on target platforms using ARIUM
- Desirable knowledge in Simics simulation.
- Cultivates, develops and manages strong relationship with team members.
- Ability to communicate design rationale and build consensus
- Ability to prioritize and manage work to critical project timelines in a fast-paced environment
- Influences others through their professional/technical expertise.
- Must be organized, have an eye for detail, and be able to put ideas into a tangible form.
- Able to achieve mastery of new tools, languages and operating systems with some training and on-the-job experience.
- Versed in the concept, use of and selection of revision control software (e.g. HP ALM, QMetry, JIRA etc)
- Able to apply Software Lifecycle and Quality Assurance methodologies in a cost-effective manner, to bring high-quality products to market on time.
- Understanding of software development lifecycle, product development lifecycle, and Agile development methodologies.
- Master/Bachelor's degree in Computer Science, Computer Engineering, or related discipline, or equivalent work experience