I am right between Engineering and Software development.
Working at CIMNE since 2004, I have been involved and led research projects in a wide range of fields: harbours & waves, oil & gas drilling, aerodynamics, landslides, agriculture,... I developed a software for free surface flows (www.cimne.com/pfem/) and after that, one for particles (http://www.cimne.com/dem/, but I also found myself developing parts of standard CFD and structural (CSM) codes.
In these years I have become an experienced programmer mainly in Object Oriented languages (C++, Python) and also Matlab. Subversion or Git (preferably the second) are a must for the best team work.
As an Engineer, the goal of each project is my main concern, and software is just a handy tool.
The lectures on Theory of Finite Elements and structures given at the University since 2010 were a good complement to my practical work at CIMNE.