Senior C++ Developer

Barcelona - Sant Cugat Senior

We are looking for an experienced computer scientist or similar to work as software engineer on the R&D community.
As a Member of SW/FW team you will participate in the designing and developing firmware and software components to interpret and manage printing jobs, which is currently being rearchitected, to be modernized applying new coding methodologies. Using the latest C++ standard versions, we guarantee that our software components are multiplatform, so they can run on different systems such as Linux, Windows and Mac.

About the position


  • Creates, analyzes, designs, programs, document, debugs, and modifies firmware and software components.
  • Analyzes design and determines coding, programming, and integration activities required based on general objectives and knowledge of overall architecture of product and solution.
  • Write and execute complete testing plans, protocols, and documentation for assigned portion of application.
  • Identifie and debugs, and create solutions for issues with code and integration into application architecture.
  • Collaborate and communicate with management, internal, and outsourced development partners regarding Firmware applications design status, project progress, and issue resolution.
  • Review specifications, design and development documentation.
  • Ability to work with multiple disciplines: software, firmware, electrical, ASIC and mechanical.
  • Work with Marketing and Human factors to define the requirements for the printing software application.
  • Align to the schedule needs given by the different program teams.
  • Investigate, define and implement algorithms related to digital printing.
  • Support the roadmap of the software taking into account industry trends, business strategy as well as market evolution.Drives innovation and integration of new technologies into projects and activities in the software applications design organization.


  • Be a proficient software developer, capable of develop high quality, well-architected, good performance software.
  • Teamwork: be an excellent team player.
  • Process oriented: understand, follow and improve software development processes including Product Life Cycle.
  • Understanding of Requirement processes elicitation and typical software development processes and models.
  • Experience of product development or similar work.
  • Strong C++/C++ 11 programming skills.
  • In-depth understanding of C++.In-depth understanding of modern operating systems, especially Linux.
  • Experience with Linux, Windows and Mac software development, package, test & release, and with libraries generations.
  • Experience with Visual Studio and QT creator STL knowledge and usage.
  • Experience in embedded software development.
  • Experience in concurrent programming.
  • Experience in multithreaded and/or multi-process systems, understanding usage of synchronization primitives, different communication paradigms and protocols, mutual exclusion, producer-consumer schemes, memory sharing, data communication and priority assignment.
  • Demonstrated ability to work with a group of peers.
  • Demonstrated ability to make in-depth technical or business contributions working with other engineers.
  • High level of initiative, with an ability to plan and manage tasks, ability to work collaboratively, both within and outside one’s own group.
  • Strong written and verbal communication skills in English.
  • Quality and process oriented, capable of manage automated testing infrastructure and plan for improvements in Quality Assurance and Quality Control areas.
  • In-depth understanding of low-level real-time firmware development.
  • Experience in real time operating systems and tool chains.
  • Experience in code debugging: usage of debuggers and (desirable) tracing tools, memory corruptions and leakage detection and correction, stack analysis.
  • Experience in state machine design and implementation, event driven control, complex error detection and recovery, synchronization between multiple devices with multiple states.
  • Experience working with distributed teams.
  • Experience in 2D/3D computer graphics and color.TCL, Perl and Python scripting languages.


  • ​​​Permanent contracts.
  • ERNI career path.​
  • Flexibility package:
    • Flexible working hours.
    • Home office program*
    • Friday intensive shift*
  • Gym for less.
  • Free language courses (English, Spanish and German).
  • Private medical insurance with Adeslas.
  • Flexible pay.
  • Attractive referral bonus. If needed:
    • Relocation package.
    • Transport bonus.​

About the recruiter

Arjona Luis Alberto (ERNI)

Email: [email protected]

Trust, Passion, Responsibility and Independence

About us

ERNI was founded in 1994 in Switzerland to develop innovative software for international companies and small to medium­sized enterprises. Today, the ERNI Group has more than 800 employees at 15 locations in 7 countries and continues to grow. Interested?

Sounds interesting?
Apply now!