The primary responsibilities are the design and development software/firmware for a Read Channel evaluation system. The evaluation system consists of a Windows PC application and a hardware bench board. It is used by the IC designers, validation engineers, and external customers to debug and evaluate the read channel. The developer is responsible for the complete solution from requirements through delivery to customer. Specific tasks include:
Translate user requirements into a design and implement the software/firmware using a high level language such as C, C++ or Python. The solution must consider the integration with the evaluation system (hardware and software) and the development schedule
Test and debug the code in the lab using the evaluation system with a device under test. Must have an understanding of the entire system and the ability to debug hardware/software using debuggers and bench equipment such as logic analyzers and oscilloscopes
Merge the code into the source code control and write release notes or user instructions/documentation
Work with customers, designers, and field support teams to help with debug of problems related to the use of the system or feature.
Occasional travel to customer's sites to demonstrate and train in the use of the evaluation system or feature
Work with the IC design team as well as the validation and customer support teams to understand the hardware and software requirements needed to evaluate the read channel in the lab environment
Qualifications:
BS in Electrical or Computer Engineering, MS preferred
Minimum of 5 years developing software or embedded firmware, strong understanding of differences between PC and embedded platforms
Self-motivated and able to learn quickly
Strong C++ and C programming skills, with experience using Microsoft operating systems, architecture, and tools (MS Visual Studio, MFC)
Experience using software development tools such as C/C++ compilers, emulators, source code debuggers, source code control
Experience developing and debugging code on both PC and embedded platforms
Experience using lab tools such as arbitrary waveform generators, logic analyzers, and oscilloscopes
A good understanding and practice of the hardware and software development process is essential; this includes developing design documents, holding design reviews, using version control, designing modules with emphasis on efficiency and code reuse, and testing of code, both unit and system.
Experience with communication protocols such as USB, RS-232 and TCP/IP
Must have strong program management and interpersonal skills
Desired Skills
Knowledge of hard disk drives, read channels and hard disk drive interfaces
Knowledge of Python programming language
Knowledge of IC design and development process
Experience working on team development projects with some members in different geographic locations