Embedded Software Engineer (CPC)

TK Elevator
Municipality of Madrid, Spain
7 days ago

Role details

Contract type
Permanent contract
Employment type
Full-time (> 32 hours)
Working hours
Regular working hours
Languages
English
Experience level
Senior

Job location

Remote
Municipality of Madrid, Spain

Tech stack

API
Agile Methodologies
Confluence
JIRA
Unit Testing
Azure
C++
Communications Protocols
Computer Programming
Concurrent Computing
Continuous Integration
Data Transmissions
Serialization
Software Debugging
Software Design Patterns
Linux
DevOps
Electronic Data Interchange (EDI)
Embedded Software
Ethernet
Firmware
Design of User Interfaces
Hardware Design
Hardware Interface Design
Issue Tracking Systems
JSON
Linux Distribution
Message Queuing Telemetry Transport (MQTT)
Network Protocols
Posix
Scrum
Cloud Services
RS-232
RS-485 Standard
Socket
Software Engineering
Systems Integration
Multithreading
Test Driven Development
Yocto
Information Technology
Deployment Automation
Atlassian Tools
Bitbucket
Cloud Integration
Software Version Control
Bamboo

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+

Apply for this position