this is a somewhat dense, but thorough guide and approach for your software engineering internships. here i am just sharing with you some tips and tricks for building relationships with your manager, team, and peers. these are the things that i did that worked really well that ultimately led to me getting highly positive and constructive feedback and eventually, return offers to come back for another internship and full-time position!
note: it's important to keep in mind and understand that while you can do everything in this guide and then some, ultimately, there is no guarantees for the outcomes of your internship. Regardless of what happens, my philosophy is that regardless of the outcomes, i would rather walk away with doing everything that i could have done to maximize my learning, network building, and experience more than anything!
day0
first off, congratulations on your software engineering internship! you worked super hard to get to this point, so it's important that you remember this and carry this throughout your internship. your company hired you for a reason and they want to continue to invest into you and your talent. remember that your internship is a continued interview between your and the company. you are there to learn what working as an engineer is like at that company as well and in the city that you are in. your internship is kind of like a mini trial period! use it to learn and understand what you want (and don't want) in a employer! remember these points throughout your internship
now, before you start your internship, here is a general set of questions that i ideally, wanted to know the answers (even if just generally) before my first day.
- how will you get to the office? how early do i need to wake up? when is the latest that i could leave?
- who am i going to be working with? what are working on?
- how can i prepare and fill in any technical gaps before my internship?
- what is the timeline for my performance evaluations?
- how will my performance be evaluated?
the first two questions are more or less logistical. usually, i would say and recommend that you figure out your intern housing situation as early as possible. reddit is a good place to read up on the safety, commuter connivence, and overall enjoyment about living in specific parts of a city that maybe you don't know a lot about. the second depends on how your company's recruitment process is like. for me, i knew what team i was going to be working under, as well as my manager's contact information (email). so it was as simple of a email and following up with an email to get a sense for what i needed to do to prepare. in that meeting i was able to clarify what the team does and the "tech stack" which for me, was just a bunch of java so i studied up a little bit on that to get familiar with it (so this covers questions 1,2, and 3)
the ones that are kind of more important, questions 4 and 5. these are important for you to understand know about early and ideally before your internship because it helps you come into the internship with an idea of what is going to be expected for you. every company is going to be different, but knowing how they are evaluating you gives you a sense for what things you need to prioritize and focus on.
the best way to learn and understand these things is to 1) reach out to past interns who are returning. you want to learn and talk to people who have successfully gone through the process. 2) your recruiter. im ranking your recruiter second because sometimes they can't always be super transparent about evaluation metrics, luckily Salesforce was a company that was pretty clear on the expectations, but your milage may vary. 3) reddit/online forums. you can't really verify if the information that they are giving you is inherently true or not, but it doesn't help to look around. usually, if you keep seeing the same things/themes being repeated, they you can assume that it's probably true. 4) company discord. im not sure how active other company's discords are but usually especially for bigger companies, some discord channel for all of the people who interned there. also, see if there is a whatsapp groupchat for people who are interning (not that important though).
for finding people to talk to for my first choice, you can also search up on Linkedln, look for the people who made post about them accepting their offers, and have it that they are returning. if you can't find a lot of people who are returning, reach out to any past interns who are willing to help you.
day one
once you start your internship, there are some things that you should look to start quickly.
your number one priority to meet with your manager as soon as you can. during that meeting, there are some things that i would ask them:
- how will be evaluating my performance during this internship?
- what would define a successful intern on this team?
- who are some of the key stakeholders / people who i should be reaching out too during my internship for help and guidance on my project?
- how often will you be giving me feedback during my internship?
these questions i know seem a bit more bold and "out there". but, i like to
be direct and clear with my managers / teammates during my internships. the reasoning behind this is because i want to make ti clear to them what my goals and intensions are during the internship. i also don't want to have any "surprises" when i get my performance evaluations back. im the type of the person that more or less, wants to have a sense of understanding and control, and this is how i can achieve that.
So, depending on how the conversation goes, I want ask and bring up that there are the kinds of things that i care about and want to get out of time interning. here is my general list for that:
- what are some of the characteristics / traits that great engineers in your past had?
- what are the key stakeholders and use cases for what i am working on?
these are the types of questions that i think, give you the "full picture" of what your 2-3 months at your internship would look like. and hopefully, it helps you to get a more well rounded picture early about where you fit in and the kind of purpose and role you have.
day n
and beyond
so as you progress during your internship, it's important to stay consistent with everything from above. if you can, have regular check-ins with the people who are writing your performance evaluations. this is so that if you start to fall behind on your deliverables, you can get feedback and make a plan of action to get back on pace to meet your deadlines.
for the rest of this blog post, i will just be sharing some of the things that helped me make my work more "visible" and have data to backup my claims and contributions.
the brag book
maintain a "brag book". a brag book is essentially some document, spreadsheet, notebook where you keep track of everything that you've accomplished. you can track which tickets you worked on/finished that day. you can write down notes from the people who you networked with.
the purpose of your brag book is so that when you meet your manager, you have at the ready, real qualitative and quantitate data to share with them. "oh this past week i completed 3 tickets and i also spoke to 2 other engineers not on our team to understand our organization better".
this helps you have much more fleshed out responses and insights to your own work. this is a lot better than saying that "i had a very productive week" or "i made good progress on my project".
managing the relationship with your manager
when it comes to your manager, every manager is different, but i will share some things that i did that i think a lot of managers liked that i did.
for our one-on-one meetings, before our meetings, i would try to send them a slack message outlining some of the key things that i wanted to discuss with them. for example, it would look something like:
hi [managers_name]
hope you have a good start to do your day. here are some things that i wanted to discuss during our one-on-one today:
1. updates from my intern project
2. some blockers that i've been facing
of course, its not the same every week, but this is an outline for you to use
communicate earlier, rather than later
at some point, you will face some sort of blocker for your work. this is an inevitable, so how you navigate blockers is going to tell your manager and your team a lot about you.
the threshold is going to depend on you but i personally give myself two hours to figure out how to overcome a blocker before raising the flag by asking a question. before asking a question though, your "ask" should be well defined. what i mean by that is that your questions shouldn't just be "can you please help me debug this?" to your project mentor. a better question is to list out the things that you've tried / your hypothesis for what is wrong / going on. what documentation have you looked at or are referencing? these are all things that someone may be able to see and help them to help you. this gives a foundation for could become a sync up, or slack conversation.
if you're trying to reach out to people and they aren't always responsive and they are mission critical to your tasks, flag to your manager about this, people tend to be a lot more responsive when management is involved...
this also reminds me to mention that it's important that you learn and are aware of all of the different resources that your company has for navigating its knowledge base. for example, some company's may have a confluence, a private stack overflow, and channels on slack for example, where you can direct and ask questions in. these are all things that again, you can ask your manager during day one.
make sure that you stay visible
please make sure to go to all intern events if you can. not even just to network but to enjoy the benefits and activities that your company is providing to you for free. heck, you may even get to meet new people. i know intern events are sometimes scary if you don't know people, but trust me they were actually the "light at the end of the tunnel" for me. especially when i was in the weeds with my intern project. don't miss out on making memories just to write some more code!!
this ties into my next point where make sure to meet people outside of your team if you can. for me, i made it a goal to have a coffee chat, either in-person or online with someone else in the engineering department. i got a lot of great insights professionally from networking with the engineers in latinos at salesforce group.
the benefit you get about more people knowing who you are inside of a company is that these people could potentially put in "good words" for you with your manager / team. this shouldn't be the only reason why you're meeting them, but in general, inside of a company, you become more valuable as you become more visible from what i've witnessed at least.
closing marks
anddddd that's it! i know this one was a sort of longer blog post that my other ones but i wanted to dump out everything that i've learned during my two internships. hopefully you were able to learn something from them! and with that, if you have any follow-up comments and or concerns, never hesitate to reach out to me.