Do as many practice interviews as possible! Leetcode, Hackerrank, and plenty more online resources are extremely helpful for preparation. Another tip is to take as many interviews as you can. There's nothing like being in the actual environment, with someone asking you a question that you've never seen before and having to talk your way through the process. Schedule interviews with companies you're less excited about before the interviews with companies you are excited about in order to get a few practice runs under your belt!
I've received a lot of helpful advice on resumes. One thing is to proofread it! Little typos and grammatical errors can instantly turn off a reviewer that can stop the process before you even get to talk to a recruiter. Also, it is important to not only highlight the experiences you've had, but go into specific detail on what you did, the skills you acquired, the impact you generated, and how it improved your abilities wrt the job you're applying for. It is critical to tailor your resume for a given employer so that it highlights experiences they are interested. Definitely attend local hackathons if you have the time or work on personal projects you're interested in... but it goes to show that you display initiative on your own right that shows you're an independently driven candidate. Facebook emphasizes independence because they're looking for individuals who can accurately break down problems and present their findings in a clear, succinct manner to their managers. When it comes to the interview, show your passions! Ask the interviewers good questions about their work and show that you've done the groundwork in understanding the company from an outside perspective. It goes without saying that you can talk about anything and everything on your resume, or bring it up as is appropriate in conversation. They're looking for interesting and interested employees that care about their work and the impact they can create. The phone interviews I had lead to a job because I clearly showed my passion and interests to the interviewer and helped foster a memorable interviewing experience for all those involved.
Microsoft has a dedicated school recruiter for Princeton and our current one from personal experience is very helpful and enthusiastic about communicating and coordinating with Princeton students. After getting an initial interview, it does genuinely feel like all that matters is interview performance, so getting the first step in the door is really all one can do outside of interview performance. Make sure your resume is up to stuff stylistically (I worked on it with friends and I know some people who've gotten a look at it with career services)—getting it looked over by older friends in the tech industry was the best thing for me. In terms of what kind of activities to participate in that are relevant for Microsoft, all the events you can imagine such as hackathons, coding competitions, and just plain-old school work are all things that one could reasonably expect to have on a resume.