What are the responsibilities and job description for the Embedded Software Engineer (C++/RTOS) and ESP32 position at Devbytes inc?
Job Details
Key Responsibilities:
- Design, develop, and maintain C embedded software for various hardware platforms.
- Collaborate with hardware engineers to integrate software with embedded systems.
- Optimize embedded software for performance, memory usage, and power efficiency.
- Perform thorough testing, debugging, and troubleshooting of embedded systems.
- Work with system-level architecture and design teams to define software requirements and specifications.
- Contribute to software design reviews, ensuring code quality and adherence to best practices.
- Provide technical leadership and mentoring to junior developers.
- Collaborate with other teams (e.g., QA, Product Management, and Manufacturing) to ensure the successful delivery of embedded products.
- Write and maintain technical documentation for software applications, processes, and systems.
- Keep up to date with the latest industry trends, tools, and technologies to continually improve software solutions.
Job Qualifications: Education:
- Bachelor s or Master s degree in Computer Science, Electrical Engineering, or a related field.
Experience:
- Minimum of 5-7 years of professional experience in embedded software development with a strong focus on C .
- Proven experience in developing software for embedded systems and real-time operating systems (RTOS).
- Hands-on experience with low-level hardware interfaces such as I2C, SPI, UART, GPIO, etc.
- Experience with microcontroller and microprocessor-based systems such as ESP32.
- Familiarity with debugging tools (e.g., JTAG, oscilloscope, logic analyzers).
- Experience with version control systems (Git, SVN, etc.) and Agile software development practices.
- Strong problem-solving skills and ability to work in a fast-paced environment.
Skills & Knowledge:
- Proficiency in C programming (C 11 or later) and object-oriented design principles.
- In-depth understanding of embedded system design, real-time operating systems (RTOS), and memory management.
- Familiarity with development environments such as Eclipse, Visual Studio, or others specific to embedded systems.
- Experience in software testing methodologies (unit testing, integration testing, etc.).
- Solid understanding of electrical engineering concepts and hardware design.
- Knowledge of communication protocols such as TCP/IP, Bluetooth, CAN, or Zigbee is a plus.
- Excellent debugging and troubleshooting skills for embedded systems.
- Strong communication and collaboration skills, with the ability to work effectively in a team-oriented environment.
Desirable Skills:
- Experience with ARM Cortex-M or similar architectures.
- Familiarity with embedded Linux or other advanced embedded OS.
- Knowledge of safety-critical software standards (e.g., ISO 26262, DO-178C).
- Exposure to cloud-based systems or IoT development is a plus.
- Experience with security in embedded systems.
Employers have access to artificial intelligence language tools (“AI”) that help generate and enhance job descriptions and AI may have been used to create this description. The position description has been reviewed for accuracy and Dice believes it to correctly reflect the job opportunity.