Job Title: Firmware Software Engineer
Location: Sunnyvale, CA
Duration: 12 Months Contract W2
8+ years of industry experience developing and testing low level firmware for embedded systems.
8+ years of solid programming skills using C and C++, and experience developing production code and test applications
Bachelor's degree in computer science, software engineering or relevant field required.
Top 3 must-have HARD skills:
-
Proficient in C/C++
-
Expert knowledge of the full software development lifecycle: from business/systems analysis, through requirements gathering and functional specification authoring, to development, testing and delivery.
-
Experience with CI/CD development tools and processes. Scripting skills using Python or other languages for developing simple utilities and test automation.
-
Experience with RTOS and developing multi-threaded applications.
-
Expert problem solving skills to troubleshoot issues and make system changes as needed to resolve issues.
Responsibilities:
-
Develop high quality code using the C and C++ programming languages for embedded environments, with portability to various processors and platforms
-
Develop optimized firmware for the Graphics and Display pipelines to support the product use cases
-
Work with internal teams and vendors to improve and tailor existing firmware, device drivers, stack and applications to project needs
-
Debug issues across the software stack including hardware functionality and develop quick workarounds to time-critical issues and provide long term solutions
-
Writing new tests and maintaining existing tests including unit tests, manual and CI automation
Skills:
-
Expert knowledge of the full software development lifecycle: from business/systems analysis, through requirements gathering and functional specification authoring, to development, testing and delivery.
-
Experience with CI/CD development tools and processes. Scripting skills using Python or other languages for developing simple utilities and test automation. Knowledge of AR/VR technologies and/or basic understanding of Graphics and Display systems is a plus.
-
Experience with RTOS and developing multi-threaded applications. Expert knowledge of the full software development lifecycle
-
Expert problem solving skills to troubleshoot issues and make system changes as needed to resolve issues.
-
Expert ability to work independently and manage one’s time.
-
Strong verbal, written communication skills and interpersonal skills .