About the Role:
We are seeking a motivated C++ Software Engineer with 1 to 2 years of experience to join our team. The ideal candidate will have hands-on experience in a Linux environment and preferably possess knowledge of embedded systems. As a C++ Software Engineer, you will be responsible for developing, maintaining, and optimizing software solutions that drive our products.
Key Responsibilities:
- Develop and maintain C++ applications within a Linux environment, ensuring high performance and reliability.
- Collaborate with cross-functional teams to define, design, and implement new features.
- Troubleshoot, debug, and optimize existing software, addressing issues as they arise.
- Write efficient, maintainable, and well-documented code.
- Participate in code reviews to ensure adherence to best practices and high-quality standards.
- Contribute to software testing and validation processes to ensure robust and stable releases.
- Assist in system integration tasks, particularly within embedded systems.
- Stay up-to-date with industry trends and emerging technologies to contribute to continuous improvement.
Required Skills and Qualifications:
- Bachelor’s degree in Computer Science, Software Engineering, or a related field.
- 1 to 2 years of experience in C++ programming, with a strong understanding of object-oriented programming concepts.
- Proficiency in Linux-based development, including shell scripting and familiarity with Linux command-line tools.
- Basic knowledge of embedded systems development, with an interest in deepening expertise in this area.
- Experience with debugging and profiling tools.
- Familiarity with version control systems, such as Git.
- Strong problem-solving skills and attention to detail.
- Good verbal and written communication skills.
Preferred Qualifications:
- Experience with real-time operating systems (RTOS) or embedded Linux.
- Knowledge of hardware-software interfacing, such as device drivers or peripheral integration.
- Familiarity with network protocols, especially TCP/IP, and other communication interfaces.
- Understanding of Agile development methodologies.