onsite
Embedded Software Designer - Processing & Algorithms
Software Engineer
Design and develop embedded software solutions focused on processing and algorithmic performance, leveraging C#, C++, CAN communication, and CI/CD pipelines to deliver reliable, high‑performance firmware.
About the role
Key Responsibilities
- Design, implement, and maintain embedded software components using C# and C++ for real‑time processing and algorithmic tasks.
- Integrate CAN bus communication modules, ensuring robust data exchange and fault tolerance.
- Develop and maintain CI/CD pipelines to automate build, test, and deployment processes for embedded firmware.
- Collaborate with hardware engineers to optimize software for target microcontrollers and processors.
- Perform code reviews, unit testing, and performance profiling to meet stringent reliability and latency requirements.
Requirements
- Strong proficiency in C# and C++ with experience in embedded systems development.
- Hands‑on experience with CAN bus protocols and related libraries.
- Solid understanding of CI/CD practices and tools (e.g., Git, Jenkins, GitLab CI).
- Experience in algorithm design and optimization for real‑time applications.
- Excellent problem‑solving skills and ability to work independently in a fast‑paced environment.