Summary
At specialized we are committed to innovate and provide the best performance bicycle that benefit and improve our riders supporting our purpose to pedal the planet forward and contribute toward green environment. To strengthen our newly setup e-Bike electronics team in Singapore who working closely with team based in Europe, we are seeking for experience and passionate Senior Embedded Software engineer that would be great if obsessed specifically with development of bicycles or electric mobility solution. In this role you will be at the forefront of developing solutions for state-of-the-art firmware of electronics solution for e-Bike system.
How you will make a difference
• Ability to design complex embedded software systems, define system architecture, and make critical technical decisions.
• Primarily focus on embedded Linux design and development environments
• Expertise in identifying and addressing performance bottlenecks in embedded Linux systems.
• Providing guidance on technical best practices, leading technical initiatives, and contributing to the strategic direction of embedded software development.
• Execute tasks for the entire life cycle of multiple related complex modules and systems, including the behavioural application, image build/test/release, hardware abstraction layer discussion, manufacturing test/verification methodology, documentation, design, coding, testing, maintenance, and result tracking.
What do you need to win
• Master or Degree in Electronic/Electrical/Computer Engineering/Computer Science, Software Engineering, or related fields
• Minimum 3 years of proven work experience & preferably working in R&D organisation of consumer electronics, automotive product.
• Singaporean or Singapore PR candidate would be priority.
• Good understanding of embedded systems (MCU/MPU/SoC) architecture and practical hands-on experience with real-time operating systems (RTOS) and potential integration with Linux.
• Familiarity with hardware architectures (ARM, MIPS, etc.), real-time constraints, low-level debugging, and optimizing for resource-constrained environments.
• Proficiency in programming languages such as C/C++, and Python.
• Knowledge of kernel internals (scheduling, memory management, interrupt handling), ability to configure/build custom kernels, and understanding of kernel modules/device drivers.
• Expertise with build systems like Yocto/Buildroot for creating custom Linux distributions, cross-compilation toolchains, and proficiency in debugging tools (gdb, JTAG debuggers).
• Understanding of bootloaders (U-Boot, etc.), firmware flashing, and system bring-up.
• Understanding of TCP/IP, common protocols (HTTP, MQTT, etc.), and socket programming for device connectivity.
• Knowledge of various file systems (ext4, JFFS2, etc.), flash memory management, and wear levelling.
• Familiarity with embedded system security considerations, secure boot, encryption, and vulnerability mitigation.
• Proficiency in Bash or Python for automation, testing, and system management.
• Knowledge of common interfaces (I2C, SPI, UART) and experience with device drivers.
• Proficient in using version control systems (e.g, GIT), software development tools, and agile development methodologies. Knowledge of the Atlassian suite (JIRA, Confluence, bitbucket) would be an advantage.
• Excellent analytical and problem-solving ability
• Excellent English skills (written and spoken)