Not to split hairs but writing machine code is programming. I'm not sure what you're thinking about as "hardware manipulation". Programming is just one (and a very important one) part of what it takes to be a "software engineer" (or software developer, or whatever you want to call having skills to deliver, or be part of a team that delivers, major software projects).