We are currently seeking experienced Firmware/Embedded Software Engineers to join our team working on the next generation SSD solutions within our Core Firmware Engineering Group. In this position, you will join a fast-paced team developing new, cutting-edge security firmware for SSDs. You will utilize and grow your experience in embedded architecture/design, develop production ready code, apply security algorithms/techniques, and develop unit, integration, and system tests to ensure quality. In addition, you will use and gain experience in the latest storage interface standards (ex. PCIe and NVMe) and industry security specifications (ex. from TCG, DMTF, OCP). The team utilizes Agile development methodologies, therefore, excellent communication skills and the ability to work closely with team members, both locally and across the organization is required.
As an experienced Firmware Engineer, the responsibilities may include, but not limited to the following:
- Design, develop, review, document, and maintain product source code in C/C++.
- Design and develop unit, integration, and system level testing in C/C++ and Python as part of development and validation phases.
- Debug and analyzes product issues across teams and disciplines (platform, transport, etc) to root cause and fix problems.
- Collaborate with functional leads and architects to develop or modify firmware architecture.
- Coach and mentor less experienced engineers in embedded development, systems architecture, RTOS, SW/FW best practices, etc.
- Work with internal and external customers to turn product requirements into designs and development/validation plans.
- Recommend priorities and coordinate activities with team members and external teams to accomplish committed milestones.
A successful candidate will demonstrate:
- Working successfully in different stages of a product lifecycle. This implies contributing to both the planning and technical aspects of the product.
- A history of self-starting and effective multitasking with strong communication (written and presentation) and leadership skills.
- Proven experience to listen, understand and respond professionally to stakeholder questions and issues while building trust.
Qualifications
Candidates must possess the below minimum qualifications to be initially considered for this position. Preferred qualifications are in addition to the minimum requirements and are considered a plus factor in identifying top candidates.
Minimum Requirements:
- A bachelor's degree in Computer Engineering, Electrical Engineering or Computer Science or a related field.
- Development experience in an embedded or software systems environment with C/C++.
- Development experience in test and tool development with Python.
- Working knowledge for one or more of the following embedded development topics such as debuggers, real-time operating systems (RTOS), device drivers, and emulators.
Preferred Requirements: (three or more)
- 5+ years of industry experience in embedded development or low-level/systems software.
- Experience working on a shipping product that includes an embedded environment with a RTOS and FW/HW interactions.
- Experience applying one or more of the following crypto algorithms: SHA, HMAC, KDF, ECDSA, and RSA.
- Experience working with industry security standards from one of the following organizations: TCG, DMTF, OCP, and FIPS.
- Experience with coaching or mentoring engineers which implies being well-versed in:
-- Development best practices such as coding standards, code reviews, continuous validation, on vs off target testing, etc.
-- Technical concepts and skills such as CPU caches/registers/interrupts, RTOS/multi-core designs and issues, memory management, debugging with JTAG/gdb, etc.
- Experience with project and/or feature planning, work estimation, and risk management.
- Worked in the storage industry either building SSDs/HDDs or enterprise storage systems.