About the job
SummaryBy Outscal
Lead/Senior Embedded Software Engineer needed with 6+ years of experience in C++/Python for robust software design. Expertise in communication protocols (TCP/IP, UDP, MQTT, Bluetooth, I2C, SPI, MODBUS), Linux platform, and RTOS is crucial. Experience with Zephyr RTOS and CI/CD pipeline is a plus.
Description
Lead/Senior Engineer – Embedded Software
The desired candidate will provide software development throughout the systems development life cycle while focusing as early as possible on complex features and interfaces. Work closely with other development engineers, product and project managers, and other testing departments to develop software from the commercial specification.
Key competencies:
- Hands-on with design and development for a robust software
- Expert in SW designs with C++/Python with object-oriented programming
- Proficient in integrating stacks/libraries for Communication Protocols like TCP/IP, UDP, MQTT, Bluetooth, I2C, SPI & MODBUS.
- Development experience with a custom Linux platform and an RTOS is must. Zephyr RTOS will be a plus.
- Good to have experience on Make/CMake, build host as well as target system.
- Experience with CI/CD pipeline
Minimum Qualifications:
- 4-year bachelor’s degree / 4 + 2-year master’s degree in computer science, IT, or Electronics & Communication
- 6-12 Years of software development with C++ or Python, experience with embedded systems will be preferred.
- Expertise with Object-Oriented Programming and data structures
Essential Duties/Principal Responsibilities:
- Lead a team of engineers to deliver projects to our development teams, ensuring team philosophies and working practices are applied to a project.
- Be part of an extended development team and you can expect to be working face-to-face with some of the greatest water technology instruments.
- Helping to develop, optimize, and deliver the software needed to support customer-facing teams, as well as helping your team members.
- Prepare design specifications, and implementation plans based on design documents for software and hardware modules.
- Develop unit test modules/scripts for validating the software/hardware functionalities.