Senior C++ Software Engineer (Badajoz)

Senior C++ Software Engineer (Badajoz)

06 nov
|
Jobgether
|
Badajoz

06 nov

Jobgether

Badajoz

This position is listed on behalf of a partner company, which manages all applications and next steps. Our partner is looking for a Senior C++ Software Engineer based in Spain.

Join an innovative engineering project focused on developing advanced embedded vision systems and intelligent traffic management solutions. In this role, you will design and build high-performance software components using Modern C++ within a ROS2-based architecture. You will contribute to a sophisticated sensor-fusion platform designed to address complex traffic and junction scenarios, where reliability, precision, and real-time performance are essential.

Working alongside experienced developers, architects, and technical stakeholders, you will help shape software architecture and deliver scalable, maintainable solutions. This opportunity combines challenging systems programming with practical applications in robotics, embedded systems, and intelligent transportation technology. You will also have the autonomy to drive technical improvements, share your expertise, and support the development of other engineers.

Accountabilities

Software Development

Design, develop, and maintain core application components using Modern C++ (C++17/20) within an established ROS2-based architecture.

Sensor Integration

Integrate multiple sensors, external interfaces, and third-party components into a complex embedded vision and sensor-fusion platform.

Distributed Systems Engineering

Build component-based applications using publish/subscribe (pub/sub) patterns and message-based communication to support reliable data exchange across distributed systems.

Architecture and Technical Design

Contribute to software architecture and design decisions, assess technical alternatives, and implement reusable, scalable, and maintainable solutions.

Software Quality and Testing

Develop and maintain unit and integration tests to validate functionality, improve reliability, and ensure system stability.

Performance Optimisation

Identify bottlenecks and optimise runtime performance, memory usage, concurrency, and resource utilisation in performance-critical applications.

Debugging and Troubleshooting

Investigate and resolve complex software issues in Linux environments using debugging, profiling, and performance-analysis tools.

Development Environment Management

Maintain container images,



Docker configurations, and build environments for development and target platforms.

Code Reviews and Technical Collaboration:

Participate in code reviews, provide constructive feedback, and collaborate with developers, architects, and project stakeholders to maintain high engineering standards.

Technical Leadership and Mentorship

Take ownership of complex development tasks, contribute to technical decision-making, and guide less experienced engineers through knowledge sharing and mentoring.

Continuous Improvement

Identify opportunities to improve development workflows, software quality, system reliability, and engineering practices across the project.

Requirements

Professional Experience

At least 5 years of professional software development experience, with strong expertise in C++ and the development of complex software systems.

Modern C++ Expertise

Advanced proficiency in C++17/20, including memory management, multithreading, concurrency, and performance-critical programming.

ROS2 and Robotics

Practical experience developing robotic applications with ROS2, including an understanding of its architecture, components, and communication mechanisms.

Sensor Integration

Hands-on experience integrating multiple sensors into complex software systems, preferably within embedded vision, robotics, or sensor-fusion applications.

Distributed and Component-Based Systems:

Solid understanding of distributed architectures, component-based software design, and pub/sub or message-based communication patterns.

Software Architecture

Strong knowledge of software design principles, architectural best practices, and approaches to building maintainable and reusable applications.

Testing and Quality Assurance

Experience designing and implementing unit and integration tests for reliable, production-quality software.

Linux Development

Strong experience working in Linux environments, including debugging, profiling, performance analysis,



and troubleshooting.

Version Control and Collaboration

Proficiency with Git and collaborative software development workflows, including code reviews and shared development practices.

Containerisation

Hands-on experience with Docker and containerised development and build environments.

Analytical and Problem-Solving Skills:

Strong analytical thinking, systematic debugging skills, and the ability to resolve challenging technical problems independently.

Ownership and Communication

Ability to take responsibility for complex engineering tasks, make informed technical decisions, collaborate effectively, and communicate clearly in English.

Nice to Have

Experience developing ROS2 nodes and using Python for tooling, testing, or non-critical ROS2 components.

Additional Advantages

Familiarity with Yocto, Embedded Linux, Kubernetes, Helm, CI/CD pipelines such as Jenkins or GitLab CI, real-time operating systems, and real-time programming concepts.

Domain Knowledge

Experience with machine learning concepts for perception and decision-making, or previous work on traffic management, traffic monitoring, or traffic enforcement systems, would be an advantage.

Benefits

Flexible Working Arrangements

Choose from remote, office-based, or adaptable working formats, subject to role and location requirements.

Competitive Compensation

Receive a competitive salary and comprehensive compensation package.

Personalised Career Development

Access career growth opportunities tailored to your professional goals and technical interests.

Professional Learning Opportunities

Benefit from mentorship programmes, technical talks, training sessions, and centres of excellence.

Knowledge-Sharing Communities:

Participate in active technical communities that encourage collaboration, knowledge exchange, and continuous learning.

Education Support

Access education reimbursement to support ongoing professional development.

Employee Recognition

Receive anniversary gifts and recognition of important career milestones.

Team-Building Activities:

Take part in corporate events and team activities designed to strengthen professional relationships.

Additional Local Benefits

Access location-specific benefits depending on the applicable employment arrangement.

📌 Senior C++ Software Engineer (Badajoz)
🏢 Jobgether
📍 Badajoz

Postulate a este anuncio

Muestra tus habilidades a la empresa, rellenar el formulario y deja un toque personal en la carta, ayudará el reclutador en la elección del candidato.

Suscribete a esta alerta:

Recibe por email las nuevas ofertas de trabajo para: senior c++ software engineer (badajoz) / badajoz

Suscribete a esta alerta:

Recibe por email las nuevas ofertas de trabajo para: senior c++ software engineer (badajoz) / badajoz