Can ask why you left engineering to go on the software side? The reason I ask is a few co-workers of mine did the same thing. They started off in engineering and then left to do consulting/software after. Though they never exactly have said why. It's kind of a trend in engineering consulting. I am assuming cuz you can probably make more money consulting then you can engineering in most cases but again, I am assuming.
Depends on what kind of engineering, engineers are usually very specialized and you can get bored after a short while.
I actually work in a niche market, Industrial Automation. My first job was a Control Systems Engineer so I was all about Industrial Automation. At the time there were not very many HMI based control and automation systems, especially Windows based ones on commercial PC's. Back in the day all you had were custom control systems or a DCS from big companies. HUGE dollars. What I did was take commercial grade off the shelf components and "integrate" a control system that was custom fitted to your process or application. Until then your process or application had to conform to the control system you purchased.
So that was my niche from day one, and it hasn't changed much. Basically I take any process and automate it. I've automated almost everything, Food processing, Oil and Gas, Power Management, Hydrogen Fuel Cell Vehicles, Pharmaceutical, Vessel Management, Plastic Injection Molding, Traffic Light Controls and CoGen Plants. Basically, you take a piece of industrial or field equipment (i.e. Pumps, Generators, Conveyors, Tanks, Switchgear, etc...) and ad instrumentation (i.e. Pressure/Temperator Sensors, Current Transmitters, Position Indicators, On/Off Switches, etc...) wire it back to I/O modules (I/O = Input/Output) and maybe have all those modules controlled by an industrial controller like a PLC (Programmable Logic Controller) or controlled by a PC. Then you can communicate to that controller with a PC via industrial network, serial connection or Ethernet. You then develop or configure an HMI to give them a graphical representation of their process.
Everyone under the sun can do that now a days, you can buy stuff that's very easy to use and develop an HMI and there is even some software out there that can generate control code based on your process diagrams or P&ID's. Being able to read a P&ID and write the actual control code that runs a factory or plant is what seperates me from 90% of the "programmers" and "engineers" out there, having an electrical background and troubleshooting ability seperates me from another 5%. Most of my competition is from really old foggies or big engineering companies. I've met hundreds of engineers and worked with at least 50 or 60 and only 4 guys I've met or worked with can do everything I do, and only one of them was clearly better than me, the other 3 were too geeky to handle the sales and marketing side of the buisness.
So now the buzz word is "Enterprise Wide Automation" and that is what I started consulting on starting back in 2000, it was kinda new back then. Basically it's taking all the data from all the instrumentation on the factory floor and pushing it up to some Corporate VP or IS Manager. Being able to get real-time data about your production in a usable format for "non-engineers" is very useful and actually makes it easier for them to spend money when higher level management can actually see the results on their PC or desk. So all I do is write software that crunches data that is comming from factory floors all over the country. Even though Industrial Automation is 10X harder then writing some data crunching client server app, companies will pay 2X the money for the easy stuff just because management can see and understand it. That's why I do what I do today, but I still get sucked into some form of Industrial Automation when stuff breaks or needs adjustment.
The current landscape is you have egineers, network guys, computer guys, software guys, electricians and process guys to execute an automation project. I can do all the jobs but engineering and process is my weakest link. Engineers need to be able to properly spec the equipment based on the process requirements, that is tough stuff because it almost always requires a specialist (i.e. electrical engineer, mechanical engineer or an engineer familiar with the local regulations). That's too much stuff to memorize but all the stuff inbetween I can do, bascially I can take a P&ID and deliver a "turn key" system to the end user. The problem I have is software guys are pushing down into my world much harder than I'm pushing into theirs because so many companies outsourcing software to places like India for 1/3 the cost. Basically companies want a one-stop-shop and it's easier for a software guy to pick up 80% of my work since the tools and languages I use are much easier than something like .NET or C#. A lot of the custom fit software I used to write you can now buy and simply "configure" and do minor developement so I think it's time for me to update my skills.