Some advice on internships
The question was: “Should I take and internship with Microsoft or Amazon?”
Disclaimer: I haven’t worked at either company. This is a more general answer.
First of all, congratulations! You’re in the enviable situation of not going badly wrong either way.
They’re both decent companies working on challenging problems. And I’m assuming both offers are in the Seattle/Redmond region, so geography is not a differentiator.
You should choose based on two things:
Did you get to speak to the person who will be hosting you, i.e. your boss for the summer? Do they seem like someone who would take the time and effort to guide and mentor you? Are they enthusiastic about what they’re working on? About having you? Are they technical or more managerial? If your official host is a manager and will hand you off to one of the engineers on their team, ask to speak with that person. I’ve hosted interns myself, and it takes special care to see to it that they are successful, and are learning and enjoying their time there. One has to pick problems of just the right size and challenge. You want to feel like you accomplished and finished a decent challenging chunk of work over the summer. An internship is basically bootcamp for industrial software engineering, and you want a great coach.
A distant second factor is what exactly you will be working on, and whether it is something you are interested in. I say distant second because you should not get hung up about trying something outside your specialty or interest. The main point of an internship is to just see how software is built in the real world, and get to contribute to it in a real, non-toy way.
Hope that helps!