C++ - Software Engineer
Left Right Mind
Job Summary
We are seeking a highly skilled System Software Engineer with extensive experience in writing software for hardware systems. The role involves designing, developing, and implementing software that controls hardware, supporting integration with hardware components, and collaborating with hardware engineers. The ideal candidate will debug and optimize code, participate in code reviews, and stay current with embedded systems technologies, delivering high-quality, efficient solutions.
Must Have
- Design, develop, and implement software that controls hardware.
- Experience with writing software for hardware systems.
- Support the integration of software with hardware components.
- Collaborate with hardware engineers to define system requirements.
- Debug and optimize existing code.
- Proficiency in C++.
- Mandatory experience in OOP, design patterns, data structures, distributed systems, multi-threaded and multi-process programming.
- Hands-on experience in Desktop based application.
- Strong knowledge of real-time operating systems (RTOS) and embedded Linux.
- Experience with MFC.
- Familiarity with interface protocols like CORBA, Apache Thrift, gRPC.
Job Description
About the Role
We are seeking a highly skilled System Software Engineer to join our dynamic team. The ideal candidate will have extensive experience in writing software for hardware systems, a strong understanding of hardware-software interaction, and a passion for delivering high-quality, efficient solutions.
Roles & Responsibilities
- Design, develop, and implement software that controls hardware.
- Experience with writing software for hardware systems.
- Support the integration of software with hardware components.
- Collaborate with hardware engineers to define system requirements and specifications.
- Debug and optimize existing code to enhance performance and reliability.
- Experience with writing software for hardware systems.
- Participate in code reviews, providing feedback and mentoring junior engineers.
- Stay current with industry trends and emerging technologies related to embedded systems.
- Document software design, development processes, and testing results.
Required Skills & Experience
- Bachelor’s degree in Computer Science, Electrical Engineering, or a related field; Master’s preferred.
- 5-15 years of previous experience as an Embedded Engineer/Software Engineer/ Software Developer working on (non-compute hardware), automation, or instrumentation.
- Proficiency in programming languages such as C++.
- Mandatory experience in OOP, design patterns, data structures, distributed systems, multi-threaded and multi-process programming.
- Hands-on experience in Desktop based application.
- Strong knowledge of real-time operating systems (RTOS) and embedded Linux.
- Experience with MFC.
- Familiarity with interface protocols for cross language software such as CORBA, Apache Thrift, gRPC or similar technologies.
- Excellent problem-solving skills and attention to detail.
- Strong communication skills, both written and verbal.