I once worked for a multi-national food processing automation company.
We had an internal control system based on RT_PREEMPT Linux and busybox. This system was created before buildroot and yocto became a thing. It was compatible with the company's previous control system, which ran on bare-metal 68k. I was on the team that maintained and developed this Linux based system. This all ran on hardware that was developed and manufactured in-house.
The company had also acquired many smaller companies over the years, all of which came with their own way of doing things. Most used PLC, but not always from the same vendor, some even used elaborate mechanical clockwork.
The Linux based stuff was actually pretty good for gluing all this stuff together.
At some point, a consulting company came in, and shortly after that, the management decided that the company should focus on its "core competencies". So, they hired a guy to find a replacement for all the different control systems within the company: One system to rule them all. It was to replace all the software and the hardware.
We told them, that they should rather focus on creating and documenting common interfaces; replacing everything was very clearly an impossible task. They ignored this advice, entered a contract with a single PLC company and deprecated the system that I was working on along with everything else.
A few years later, they fired that guy they hired and the CTO, but in the meantime, we all kept working on the "deprecated" systems while the replacement was "just around the corner".
Anyway, whether they were going to proceed or not didn't really matter to me. It's all about the journey, not the destination. You can keep learning whether you're doing something useful or not. You can still craft software to the best of your abilities and take pride in the art. In fact, don't think of yourself as a software engineer. Think of yourself as a software artist!
We had an internal control system based on RT_PREEMPT Linux and busybox. This system was created before buildroot and yocto became a thing. It was compatible with the company's previous control system, which ran on bare-metal 68k. I was on the team that maintained and developed this Linux based system. This all ran on hardware that was developed and manufactured in-house.
The company had also acquired many smaller companies over the years, all of which came with their own way of doing things. Most used PLC, but not always from the same vendor, some even used elaborate mechanical clockwork.
The Linux based stuff was actually pretty good for gluing all this stuff together.
At some point, a consulting company came in, and shortly after that, the management decided that the company should focus on its "core competencies". So, they hired a guy to find a replacement for all the different control systems within the company: One system to rule them all. It was to replace all the software and the hardware.
We told them, that they should rather focus on creating and documenting common interfaces; replacing everything was very clearly an impossible task. They ignored this advice, entered a contract with a single PLC company and deprecated the system that I was working on along with everything else.
A few years later, they fired that guy they hired and the CTO, but in the meantime, we all kept working on the "deprecated" systems while the replacement was "just around the corner".
Anyway, whether they were going to proceed or not didn't really matter to me. It's all about the journey, not the destination. You can keep learning whether you're doing something useful or not. You can still craft software to the best of your abilities and take pride in the art. In fact, don't think of yourself as a software engineer. Think of yourself as a software artist!