- Conducts analysis, designs, performs programming, debugs and modifies software.
- Troubleshoots code for firmware applications.
- Utilizes analog and digital hardware and software operating systems. Typically programs in machine language, assembly language and high level languages, (e.g., C, C++)
- Strong working knowledge of firmware development, verification, system failure analysis, embedded systems design and real time embedded systems.
- Strong problem-solving skills, including the ability to find creative solutions to difficult problems.
- Strong working knowledge of software engineering principles and designing and developing firmware using assembly and C/C++ programming.
- Strong debugging skills in an embedded firmware application including:
- Using development tools and IDE's such as MS Visual Studio, Slick Edit, SourcePoint and Realview.
- Problem re-creation and trapping
- Logging and diagnostics
- Experience with digital hardware design and test equipment such as In-Circuit Emulators (ICE) and logic/bus analyzers
- Strong working knowledge analyzing complex firmware and hardware issues.
- Strong knowledge working identifying and optimizing performance of critical algorithms.
- Experience in the storage industry in SSD, HDD, storage systems, or a related technology
- Experience in Security domain is preferred for this position
- Working knowledge of ARM/ARC Microprocessors, with experience on ARC or ARM Cortex.
- Knowledge of the Agile software development process life cycle.
- Strong knowledge of structured firmware development process and life cycle.
- Strong skills in communicating complex technical ideas/concepts.
- Ability to work in a fast-paced environment and communicate effectively (written and verbal) across multiple locations and teams.