Senior Firmware Engineer
SGS Consulting
About the role
About
The main function of a firmware software engineer is to apply the principles of computer science and mathematical analysis to the design, development, testing, and evaluation of the software and systems that make computers work. A typical firmware software engineer designs, develops and tests operating systems-level software, compilers, and network distribution software for medical, industrial, military, communications, aerospace, business, scientific and general computing applications.
Day-to-Day 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.
Must-Have 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.
- Experience with RTOS and developing multi-threaded applications.
- Expert knowledge of the full software development lifecycle.
Nice-to-have Skills
- 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 .
Experience
8+ years of industry experience developing and testing low level firmware for embedded systems. 10+ years of solid programming skills using C and C++, and experience developing production code and test applications.
Education
Bachelor's degree in computer science, software engineering or relevant field required.
Skills
Don't send a generic resume
Paste this job description into Mimi and get a resume tailored to exactly what the hiring team is looking for.
Get started free