This role involves designing, developing, integrating, testing, maintaining, and optimizing software solutions, focusing on embedded applications and complex technological systems. It suits a C++ developer with experience in real-time systems, user interfaces, and backend components.
Responsibilities
Design and develop software applications in C++
Develop using object-oriented programming principles
Implement multithreaded applications and manage synchronization mechanisms
Develop and maintain embedded software in C/C++
Design and implement algorithms for embedded and real-time systems
Develop algorithms for signal processing
Implement and optimize digital filters
Analyze and optimize software performance
Develop frontend using Qt/QML and JavaScript frameworks
Design and implement user interfaces with attention to UI/UX, usability, and user experience
Integrate frontend interfaces with backend components, REST API, and databases
Develop and maintain software components on Linux Embedded platforms
Develop and integrate software through communication buses and protocols such as Modbus, I2C, UART, and SPI
Use MATLAB/Simulink for algorithm development, simulation, and validation
Support porting algorithms from simulation environments to target systems
Design, develop, manage, and maintain relational and real-time databases
Develop and manage queries and software components based on SQL
Develop backend components and application services using technologies such as Python, Java, PHP, and Node.js
Integrate software and application components with existing systems
Perform debugging and application troubleshooting activities
Use profiling and performance analysis tools
Manage source code and changes through versioning systems such as Git and/or CVS
Document the code and implemented solutions
Manage structured software changes
Perform testing, validation, and verification of developed functionalities
Collaborate with the development team in integration activities and technical problem resolution
Provide technical support to the team during development, integration, and maintenance phases
Produce and update technical documentation related to software solutions
Requirements
Diploma or degree in technical, IT, or engineering disciplines
At least 3 years of professional experience in software development
Concrete experience in C++ development
Experience in object-oriented programming
Millions of jobs, with real people getting hired every day
200,000+
New jobs added daily
7,000,000+
Verified job listings
1,000,000+
Tailored applications submitted
Experience in developing multithreaded applications and managing synchronization
Experience in embedded software development in C/C++
Experience in frontend development with Qt/QML and JavaScript
Experience in integration between frontend, backend, REST API, and databases
Experience with Linux Embedded
Experience with communication protocols and buses such as Modbus, I2C, UART, and SPI
Experience in algorithm development or validation
Experience in signal processing, digital filters, and performance optimization
Experience with MATLAB/Simulink
Experience in designing and managing relational and/or real-time databases
Experience with SQL
Experience with at least one of the main backend technologies indicated, including Python, Java, PHP, and Node.js
Experience in using versioning systems, preferably Git
Experience in debugging, profiling, and application troubleshooting activities
C++ standard
Object-Oriented Programming
Multithreading and synchronization
Qt / QML
JavaScript
UI/UX and graphical interface development
REST API
C/C++ Embedded
Linux Embedded
Algorithmic design
Signal processing
Digital filters
Performance optimization
Modbus
I2C
UART
SPI
MATLAB / Simulink
Relational databases
Real-time databases
SQL
Python
Java
PHP
Node.js and main backend frameworks
Git and/or CVS
Debugging and troubleshooting
Profiling
Software testing and validation
Documentation and structured software change management
Excellent analytical and problem-solving skills
Strong aptitude for development and technical problem resolution
Ability to work on complex software systems
Aptitude for working in multidisciplinary teams
Ability to collaborate effectively with other developers and technical figures
Result-oriented
Ability to plan and organize activities
Precision and attention to detail
Good technical communication skills
Autonomy in managing assigned activities
Flexibility and adaptability to complex technological contexts
Fluent Italian
Fluent technical English, written and spoken
Availability for occasional business trips, if required by project needs and previously agreed upon
Nice to have:
Advanced experience in C++ development
Experience on embedded and real-time systems
In-depth knowledge of Qt/QML
Experience in developing applications with advanced graphical interfaces
Experience with MATLAB/Simulink for algorithmic development and validation
Knowledge of digital signal processing techniques
Experience in developing and optimizing digital filters
Experience on Linux Embedded
Knowledge of Modbus, I2C, UART, and SPI protocols
Experience in designing and managing real-time databases
Knowledge of backend architectures and REST API
Experience with Python, Java, PHP, and/or Node.js
Knowledge of profiling and performance analysis tools
Experience with Git/CVS and structured code management workflows
Experience in integration activities with existing software systems
Experience in high-tech software development contexts
Benefits
Permanent contract or collaborations as a freelancer
Inclusion in national infrastructure projects
Technical and professional growth paths
Constant follow-ups with HR and Business Manager
Dynamic, structured environment focused on skills development
Important Details
Experience: 3+ years
Schedule: Full-time
Contract: Permanent
About the Company
We are a company operating in the IT consulting and technological innovation sector, specializing in the development and integration of software solutions and complex technological systems.