(Staff/Sr.) Embedded Software Engineer
We are looking for self-motivated and self-starting engineers to design, implement, integrate, test and maintain software for embedded systems.
You will work closely with the project team to define and manage deliverables and their milestones.
You are required to have good appreciation of various design patterns, their trade-off, and implementation intricacy.
To excel, you will need to have keen eyes for debugging and trouble-shooting not just the DUT but possibly the system/sub-system concerned.
Familiarity in SDLC is essential to ensure producitivity.
Strong programming skill is a given.
For staff level, you are expected to be strong in architectural patterns, able to view the system design in both top-down and bottom-up manners, and design suitable SW architecture for the concerned system/sub-system.
You are required to mentor the junior team members, lead in code reviews, and drive design best practices.
1. Responsible for the full SDLC of software for embedded systems and related toolchains.
2. Responsible for verification, validation and performance testing and benchmarking of deliverables.
3. Plan and coordinate projects with teams globally and execute independently.
For staff level:
4. Responsible for definition and architectural design decisions.
5. Mentor and guide junior and senior team members; code review, and coaching.
6. Assist project manager to drive efficient SDLC.
7. Generate requirements and specification.
Candidate qualifications include:
* Excellent coding skills with C and/or C++ is a given.
* Excellent debugging skill; ability to trace difficult problems using a variety of tools (debugger, JTAG emulator, logic analyzer, oscilloscope).
* Experience with embedded software development tools (compilers, assemblers, linkers).
* Experience with source code management (GIT, SVN).
* Experience with Python and/or JAVA.
* Experience with any RTOS.
* Experience with embedded system involving multi-cores (CPU/DSP/GPU/NPU).
* Knowledge of Linux kernel and driver development is a plus.
* Knowledge of continuous integration framework (Jenkins, GitLab CI/CD) is a plus.
* Knowledge of Eclipse plugin development is a plus.
For staff level:
* Excellent understanding of various design and architecture patterns, their trade-off and implementations.
* Translate architecture and design idea/concepts into clear SW specifications.
* Know what it takes to execute effective CI/CD.
* Able to write good documentation and technical specification.
* Familiar with UML for purpose of specification and design documentation.
Strong consideration will be given for these additional qualifications:
* Knowledge of machine learning / deep learning.
* Knowledge of computer vision and image processing.
* Knowledge of audio/speech processing.
* Knowledge of CNN and the common NN operators/layers.
* Familiarity with LLVM.
OmniVision Technologies Singapore Pte Ltd