C++ Object Construction/Destruction Order
Can you predict the exact order of construction / destruction of these classes? Which is the console output?
Crafting robust software solutions with C++, Python, and Full-Stack technologies
Technologies & Expertise
I'm a Senior Software Engineer with 9+ years of experience building high-performance systems, ready to bring my expertise to remote teams worldwide. Based in Malta, I thrive in collaborative environments and excel at delivering complex solutions across time zones.
My core expertise lies in real-time C++ applications for automotive systems, where precision and performance are critical. I specialize in embedded software, system optimization, and have developed patented algorithms for photovoltaic system performance enhancement.
Beyond C++, I work with Python for backend development, exploring Go and microservices architecture, and have a passion for modern web technologies including React, Next.js, and TypeScript. I believe in writing clean, maintainable code following SOLID principles.
With a Ph.D. in Information Engineering, I bring both theoretical depth and practical experience to every project. I'm well-versed in TDD/BDD, CI/CD pipelines, and modern development practices that ensure robust, scalable solutions.

Invicti
Successfully reduced exposure of sensitive data in backend logs by implementing automated detection and redaction mechanisms. Additionally, developed and integrated a custom NTLM authentication library, improving interoperability with legacy enterprise systems and enhancing overall security.
Ascent Software Ltd
Implemented core components of the ETAS Basic Open API (BOA), enabling seamless integration of Bosch and third-party devices over CAN, FlexRay, LIN and automotive ethernet based protocols. Improved maintainability and performance through SOLID C++ design, mentoring, and rigorous code quality practices.
Peer-reviewed research in photovoltaic systems, power electronics, and smart grid technologies, published in IEEE journals and international conferences.
IEEE Journal of Photovoltaics
A novel method for online characterization and monitoring of photovoltaic module performance through fingerprint recording techniques.
IEEE 23rd International Symposium on Industrial Electronics (ISIE)
Analysis of decision criteria for optimal timing of photovoltaic array reconfiguration to maximize energy harvest.
IEEE International Conference on Clean Electrical Power (ICCEP)
Adaptive algorithm for accurate identification and characterization of photovoltaic panel electrical characteristics through V-I curve analysis.
IEEE International Conference on Clean Electrical Power (ICCEP)
Geostatistical methodology for detecting and analyzing shadowing effects in large-scale photovoltaic installations.
Neurocomputing - Special Issue on Computational Energy Management in Smart Grids
Evolutionary optimization algorithms applied to dynamic reconfiguration of photovoltaic arrays for enhanced energy production.
PCIM Europe Conference
Novel algorithms and hardware implementations for real-time reconfiguration of photovoltaic arrays under varying environmental conditions.
Find my complete publication list on Google Scholar
Can you predict the exact order of construction / destruction of these classes? Which is the console output?
C++ offers two primary mechanisms: return values and exceptions. Choosing the right approach affects readability, maintainability, and performance.

The noexcept specifier have a huge impact on your code performance. Let's briefly try to understand why.
"Pietro is a wonderfully competent engineer with great wisdom and, at the same time, great pragmatism. I have often had the pleasure of working with Pietro in order to solve a problem which, upon reflection, was framed differently given his insight. As a valuable member of my team he had always been a great communicator and had made a great impact on both the engineering quality, and the culture of the team. Pietro's approach to engineering quality through requirements capture to testing traceability definitely improved my team practices, and fostered a "best practice" culture to everything he worked on."
Chris Allen
Project Owner at ETAS Bosch
"I had the pleasure of working with Pietro for 8 and a half years. I think that Pietro is very honest and reliable. He is honest in the sense that he raises and flags issues that he sees within the team, be it procedural or technical.He is very vocal and involved with discussions with the client, be it design sessions, estimating new features and also raising awareness on some issues. Something worth noting is that he was the main driver in the team for having a system of written requirements. This was done as a response to a climate at the time of changing requirements. He is extremely reliable. If there is a job to be done, Pietro will most likely see it to completion. I would strongly recommend Pietro to any C++ position possibly also including a lead role. He is a very solid C++ developer. He is very meticulous in his work. He has taken initiative and lead on several features of the project he and I worked together on."
Franco Busuttil
C++ Developer at Arringo
"I had the pleasure of working with Pietro during my time at ETAS, UK. Pietro is a great asset to our team, he can think about the bigger picture of implementation and is very thorough when implementing code, he looks for reusability and good maintainable patterns. His technical skills and people skills are so well balanced, that they aid to the continuous growth of his performance , which in turn aids to the teams performance both in team work and successful delivery of the product. I would strongly recommend Pietro for his great EQ/IQ balance and as a great thinker constantly thinking of continuous improvement."
Kiranmaye Cartier
Senior Agile Programme/Project Managert Expleo Group
I am always interested in discussing new opportunities, innovative projects, and challenging problems.
Book a quick 30-minute call to discuss your project, ask questions, or just say hello!