Text copied to clipboard!

Title

Text copied to clipboard!

Embedded C/C++ Developer

Description

Text copied to clipboard!
We are looking for a highly skilled Embedded C/C++ Developer to join our dynamic team. The ideal candidate will have extensive experience in developing and maintaining embedded systems, with a strong focus on C and C++ programming languages. You will be responsible for designing, implementing, and testing software for embedded devices, ensuring that the software meets the required specifications and performance criteria. You will work closely with hardware engineers, system architects, and other software developers to create robust and efficient embedded solutions. Your role will also involve debugging and optimizing code, as well as providing technical support and documentation. The successful candidate will have a deep understanding of embedded systems architecture, real-time operating systems (RTOS), and hardware-software integration. You should be comfortable working in a fast-paced environment and be able to manage multiple projects simultaneously. Strong problem-solving skills, attention to detail, and the ability to work both independently and as part of a team are essential. If you are passionate about embedded systems and have a proven track record of delivering high-quality software solutions, we would love to hear from you.

Responsibilities

Text copied to clipboard!
  • Design and implement software for embedded devices and systems.
  • Develop, test, and debug embedded software.
  • Collaborate with hardware engineers to optimize hardware-software integration.
  • Write and maintain technical documentation.
  • Ensure software meets performance and quality standards.
  • Participate in code reviews and provide constructive feedback.
  • Develop and execute unit and integration tests.
  • Optimize code for performance and memory usage.
  • Provide technical support and troubleshooting for embedded systems.
  • Stay up-to-date with industry trends and emerging technologies.
  • Participate in project planning and estimation.
  • Contribute to continuous improvement initiatives.
  • Ensure compliance with coding standards and best practices.
  • Work with cross-functional teams to define and implement new features.
  • Mentor junior developers and provide technical guidance.

Requirements

Text copied to clipboard!
  • Bachelor's degree in Computer Science, Electrical Engineering, or related field.
  • 5+ years of experience in embedded software development.
  • Proficiency in C and C++ programming languages.
  • Experience with real-time operating systems (RTOS).
  • Strong understanding of embedded systems architecture.
  • Experience with hardware-software integration.
  • Familiarity with debugging tools and techniques.
  • Knowledge of communication protocols (e.g., I2C, SPI, UART).
  • Experience with version control systems (e.g., Git).
  • Strong problem-solving and analytical skills.
  • Excellent written and verbal communication skills.
  • Ability to work independently and as part of a team.
  • Attention to detail and commitment to quality.
  • Experience with Agile development methodologies.
  • Knowledge of safety-critical systems is a plus.
  • Experience with embedded Linux is a plus.
  • Familiarity with scripting languages (e.g., Python) is a plus.
  • Ability to manage multiple projects and priorities.
  • Strong organizational and time management skills.

Potential interview questions

Text copied to clipboard!
  • Can you describe your experience with embedded C/C++ development?
  • What real-time operating systems (RTOS) have you worked with?
  • How do you approach debugging and troubleshooting embedded systems?
  • Can you provide an example of a challenging embedded project you worked on?
  • How do you ensure your code meets performance and quality standards?
  • What communication protocols are you familiar with?
  • How do you stay current with industry trends and emerging technologies?
  • Can you describe your experience with hardware-software integration?
  • How do you handle multiple projects and priorities?
  • What version control systems have you used?
  • Can you describe a time when you provided technical support for an embedded system?
  • How do you approach writing and maintaining technical documentation?
  • What is your experience with Agile development methodologies?
  • Can you describe a time when you mentored a junior developer?
  • How do you ensure compliance with coding standards and best practices?
  • What is your experience with embedded Linux?
  • How do you optimize code for performance and memory usage?
  • Can you describe your experience with safety-critical systems?
  • What scripting languages are you familiar with?
  • How do you contribute to continuous improvement initiatives?