Embedded Software Engineer (CPC)
Role details
Job location
Tech stack
Job description
- Embedded Software Development: Design, develop, and maintain embedded software for elevator control systems and IoT-enabled devices.
- Linux Yocto Platform: Work with the Yocto Project to customize Linux distributions for our embedded systems, ensuring optimal performance and security.
- Multi-threading: Implement and manage multi-threaded applications to optimize the performance and responsiveness of embedded systems.
- Interface Design: Design and implement robust interfaces between embedded systems and other software components, including hardware interfaces and cloud integration points. Ensure efficient data exchange and communication between different system components.
- JSON Integration: Utilize JSON (JavaScript Object Notation) for data serialization and communication between embedded systems and cloud services. Design and implement JSON-based APIs for secure and efficient data transfer.
- Test-Driven Development (TDD): Apply TDD principles to ensure the reliability and robustness of embedded software. Write and execute unit tests to validate software functionality.
- CI/CD Pipeline: Collaborate with DevOps teams to integrate embedded software development into CI/CD pipelines using tools like Bamboo, ensuring seamless and automated deployment processes.
- Azure IoT Integration: Collaborate with cloud developers and architects to ensure seamless integration between embedded systems and Azure-based IoT cloud backends. Implement and optimize communication protocols (e.g., MQTT, HTTP) for reliable data transmission to the cloud.
- Agile Development: Participate in Agile/Scrum processes, contributing to sprint planning, daily stand-ups, and retrospectives. Utilize JIRA for task management and Confluence for documentation.
- Collaboration: Work closely with hardware engineers to ensure seamless integration between hardware and software components. Provide technical support and troubleshooting for embedded systems.
- Continuous Improvement: Stay updated with industry trends and emerging technologies in the IoT and embedded systems space. Propose and implement improvements to existing processes and systems., * Health and Safety -Highest standards and a wide range of health promotion and healthcare activities
- Flexibility -We support, for example, through flexible yet regulated working hours and remote working options
- Collaboration & diversity -Collegiality is of huge importance - we treat everyone with respect and appreciation
- Development -Individual support to help you get started in your new job as well as training and education programs to help you develop professionally and personally
- Creative leeway -We offer an environment in which you can try out new solutions in a no-blame-culture
- Sustainability -We act with responsibility and environmental awareness
- Work environment -We have modern workplaces and IT equipment, subsidized lunchtime meals in the canteen, free parking and discounted public transport tickets
Requirements
Do you have experience in Software development?, Do you have a Bachelor's degree?, We are looking to hire a results-driven and talented self-driven embedded systems engineer (d/f/m) with strong experience in networking protocols, Linux and C/C++ programming.
We expect you to bring your experience, enthusiasm and creativity and take part in firmware development, hardware integration and product launches at TKE globally.
You should be able to think out of the box when finding solutions to brand new problems and make things work when the solution is not straight forward.
Your expertise in Linux, Yocto, multi-threading, test-driven development, C/C++ programming, interface design, and Azure IoT cloud integration will be essential in ensuring the quality and performance of our embedded systems., * Education: Bachelor degree on Computer Science, Electrical Engineering or related field
- Experience: 7+ years' experience in C/C++ development using Linux and 4+ years of experience in embedded software development
Technical Skills
- Programming and Software Design:
- Strong proficiency in C/C++ development in POSIX environments, including experience with system calls and glibc.
- Solid understanding of Object-Oriented Programming (OOP) principles and design patterns.
- Hands-on experience with multithreaded systems and concurrent programming.
- Familiarity with standard containers (e.g., STL) and socket programming.
- Protocols and Communication Interfaces
- Working knowledge of various industrial and communication protocols, including:
- CAN, RS232, RS485, and Ethernet.
Soft Skills:
- Proficiency with Atlassian tools such as Jira and Bitbucket for issue tracking and version control.
- Strong analytical and debugging skills
- Comfortable reading schematics and working on hardware/software integration
- Familiarity with Agile/Scrum methodologies
- English proficiency: Minimum B2, ideally C1+