Summary: you have to know Italian, the highest level you can get, the better. Economically speaking, it's going to be really though. Prospect for the future are not great, but there's no better place than Milan in Italy.
Engineering major: this would lead to way more opportunity than working on the fashion industry, in my opinion, especially if it's software engineering - but my opinion is biased because I have a technical background, but believe me Milan is way more than fashion, fortunately
Demand for software engineers is crazy high in general, I don't know about other areas of engineering but there are a lot of industries in Milan besides fashion and software.
Salaries: higher than the rest of Italy, but as a general trend, they are decreasing year after year.
You are going to need a yearly gross salary around 40.000 euros if you want to live on your own in a decent area: you are going to make about less than half of that money as a freshly graduated student.
You are going to live with other people and share expenses for quite a few years, at least until you have a minimum of 5 to 7 years of experience - unless you want to live in the suburbs.
Rents for flats are high, rents for single room are crazy-high: take into account that you are going to spend at least 500 euros/month for a single room in any decent area of the city (all while you get paid less than 1.000 euros/month).
Most of the young people (an also some of the less younger...) get financially help from their families: it is virtually impossibile to get to the end of the month as a student, or part-time worker, or an intern in Milan on your own.
Job stability is low-ish (especially if you are young and inexperienced): most of the companies resort to unpaid on poorly paid internships as a first experience, then there's the chance you'll get a fixed term contract (12 months max), having a "normal" contract is becoming more and more of a "dream" for most people - but this is a general, nation-wide trend, and unfortunately Milan is not an exception.
Side comment: in a lot of companies, especially digital agencies and consulting firms, working unpaid extra hours is the norm.
Language: this is probably the most important thing. Milan is not as international and cosmopolitan as you might expect. Knowing well Italian is not optional: unless you find a weird opportunity where you can get the job done by only knowing English, you are going to work 90% of the time with Italians, in Italian, and with people that don't speak English very well.
Background about me: I've been living and working in Milan for about 7 years, I'm 34 and I've worked for many companies so I have seen how much various companies in various industries pay, how the job market moves and how the working conditions are. I live with my girlfriend in a small, two-room flat and despite having the both of us having salaries slightly above the average (I have a 12 years work experience, and her's about 6) we can't afford more than a 50 square/meters apartment in a nice area (and we've been lucky to find one with a rent which is way above the average).