Software Engineer-Vancouver
Location | Vancouver |
Department | R&D Center |
Seniority | Junior Level |
Education | Bachelor or above |
Languages | English |
Responsibilities
- Development, customization, maintenance, implementation and design of a complex project modules and embedded software
- Responsible for the development and debugging of Linux common peripherals (UART, I2C, I2S, SPI, SDIO, EMMC, PWM, camera, LCD, gyroscope)
- Support and responseto technical queries and requirements to company customers
- Troubleshooting, bug fixing and improving application performance
- Discovery, evaluation, and implementation of new technologies to maximize development efficiency
- Other tasks assigned by the supervisor.
Educational and Skill Requirements
- Experience in developing applications and firmware in C/C++ on Linux and/or RTOS embedded systems.
- Good data structure and algorithm knowledge.
- Experience in debugging with GDB or JTAG debugger.
- Motivated to learn and grow together by working with team
- Capable of developing modular and scalable code in embedded systems.
- Operating system internals and Linux kernel build and configurations knowledge.
- Knowledge on various peripheral technologies, including low-speed peripheral and high-speed peripheral busses i.e. USB, I2C, SPI, UART, I2S.
- Experience in pin-control software, GPIO and ADC is required.
- Experience with socket APIs, inter-process communications, and multi- threaded programming.
- Working knowledge on networking protocols, including TCP and UDP.
- Knowledge on source code management like SVN, GIT and PERFORCE.
- Experience in working with cross-functional teams using agile software development methods.
- BSEE/CS with related experience, or an MSEE/CS with related experience is required.
Apply Now