Lead Embedded Software Engineer
Goodix -
Sheraton, CairoPosted 5 years ago30Applicants for1 open position
- 16Viewed
- 0In Consideration
- 8Not Selected
Job Details
Experience Needed:
Career Level:
Education Level:
Salary:
Job Categories:
Skills And Tools:
Job Description
- To plan, lead and manage system software, embedded software and firmware design and development projects
- Manage the embedded software design team including mentoring its junior members
- Responsible for all aspects of software and firmware design and development to meet product requirements from the initial concept, architecture and specification all the way through to the final verification
- Responsible for co-architecting the software-hardware partitioning with the digital design team
- Responsible for all phases of the design cycle (requirements gathering, specification, modeling, coding, verification, building, releasing, code and release maintenance, lab testing, support and documentation).
- Plan, lead and execute incremental updates and maintenance of existing software and firmware designs, test systems, and supporting environments.
- Plan, conduct and contribute to design reviews, provide input to characterization and qualification test systems, and deliver the software needed for other activities such as FPGA emulation, and system simulators
- Work closely with digital and analog design, VLSI, System, production, applications, and platform teams to develop and optimize the chip functionality and performance
- Contribute with his team to lab testing and debugging the design all the way from first silicon to productization
- Work with the applications engineers to provide adequate training and help address customer issues
Job Requirements
Basic Requirements
- University degree in Electronics or Computer Engineering
- Minimum 8-10 years of embedded software design and development experience as well as team and project leadership experience
- Strong communication and interpersonal skills
- Highly motivated and independently driven with a Can-Do attitude
- Having strong project management skills is a must
- Ability to work with global, cross-functional teams
- Excellent understanding of best-in-practice software development such as agile; TDD and CI.
- Ability to derive software architecture and design from system requirements using formal specification methods
- Excellent knowledge and experience of software industry norms, practices and processes (e.g., configuration management tools, issue tracking, revision control, ..) and having the discipline to enforce their use
- Experience in ARM based architectures and platforms, AMBA bus variants, boot loaders and OTA FW updates is a must
- Excellent knowledge of processor memory hierarchy, memory type selection and sizing, caching and memory management concepts and practices
- Working knowledge of Linux drivers and SDK development is a must
- Experience in C and its standards such as C90, C99 and C11, Assembly, multithreaded programming and RTOS
- Experience in TCPIP and socket programming
- Experience with communication buses such as I2C, SPI, SDIO and common peripherals
- Hands-on experience with debugging hardware issues using scopes, logic analyzers and JTAG debuggers with good analytical and debugging skills
- Excellent command of English (verbal and written)
Additional qualifications
- Experience with digital design or interfacing with the digital design team is a strong plus
- Experience with DSP algorithms, image and video coding, wired and wireless communications systems concepts and building blocks is a strong plus.
- Working knowledge of Windows and Linux application development is a strong plus
- Working knowledge of PCB design concepts and board bring-up is a plus
- Hands-on experience with scripting (csh, Tcl/Tk, Perl,… etc) is a plus