We are looking for a versatile Senior Software R&D Engineer and a dedicated team member to join our multidisciplinary group. This role places a heavy emphasis on hardware bring-up, low-level software development, and collaborative engineering. You will be a core player in a tight-knit team, moving seamlessly between different phases of system creation—from architecting board support packages (BSPs) and troubleshooting new hardware boards to designing high-performance application features.
Key Responsibilities
- Active Team Member: Collaborate daily within a diverse R&D team. Brainstorm solutions, conduct peer code reviews, and share knowledge to elevate the team's capabilities.
- Hardware Bring-up & BSP: Lead the software-side bring-up of next-generation hardware. Design, develop, and debug Board Support Packages (BSPs) to seamlessly bridge the hardware-software boundary.
- HW/SW Integration: Partner closely with hardware engineers to diagnose system-level bottlenecks, read schematics, and ensure optimal hardware performance.
- Real-Time Feature Implementation: Design and develop high-performance software features and real-time application layers for our flagship product.
- Product Implementation Design: Translate complex product requirements into scalable, highly reliable software designs and system architecture.
Requirements & Qualifications
- Education: B.Sc. in Computer Engineering or Electronic Engineering.
- Experience: 5+ years of professional engineering experience.
- Teamwork: Excellent communication skills. Proven track record of being a strong, supportive team member in collaborative R&D environments.
- Core Languages: Strong proficiency in C and C++ programming.
- RTOS Expertise: Proven experience in real-time embedded systems, specifically working with the VxWorks operating system.
- Low-Level Development: Demonstrated experience in Board Support Package (BSP) implementation.
- Networking: Strong knowledge of Ethernet protocols and Networking.
Advantages (Nice to Have)
- Experience working on systems that include Layer 2 (L2) and Layer 3 (L3) protocols.
- Experience working with Time-Division Multiplexing (TDM) networks.
- Knowledge of the Linux operating system.