Reflections from my SWE internship - Part 1

This is both a journal and blog post where I reflect on what I learned from my internship. I share both my takeaways during my time as a SWE intern this summer. This is more of a reflection so take what you may and apply it at your own discretion.

Ask Questions - seriously please do

As an intern, there might be many reasons why you might shy away from asking questions. You might think your questions are too stupid, you might think you already know about this tool so why bother to ask, or you might feel like this isn't even worth asking. But it is worth giving your questions a shot.

You're not expected to know everything. While I write this now as advice, I personally took a lot of time during my internship to fully internalize the fact that I'm not expected to know the ins and out of the codebase as someone who just joined a few weeks ago. Sometimes even senior engineers don't fully know the intricate details of a codebase so they really don't expect that from you.

What they DO expect from you is your willingness to learn about what you don't know or understand yet. They expect you to ask questions so that you can figure things out. They expect you to be willing to debug by asking questions, understanding the codebase a little more deeply, and trying to learn more day by day.

Reach out within a day if you're stuck

It is not worth grinding away at a bug for longer than a workday. Document all that you've done so far to fix the bug and once you've documented it - reach out to engineers on your team and ask them if they've encountered something like this before.

Also once you get more familiar with the team, try to gauge different communication styles - some people prefer resolving bugs via chat and some find it much easier to get on a call. It's totally understandable if it takes some time for you to figure that out so be patient with yourself on this.

Reach out to engineers on different teams

If your company or engineering org has a team or slack channel, try to see if your company's engineering culture promotes asking questions on those channels. If you think it does, then post your questions here since channels like these get a wide set of eyes from different engineers across all levels. BUT be careful about what questions you ask here. Don't ask something that is easily google-able.

Here is a rough mental checklist you can tick off before asking your questions on a company-wide channel:

  1. Does it have some sensitive information? Don't ask it here. Please ask your manager instead

  2. Did you google it? If not, please go and google it.

  3. Did you search it on your company's documentation hub or relevant resources? If not, go search it

  4. Did you ask anyone on your team about it? Did you ask it on your teams channel? If not, it's probably a good idea to ask your team first

If you've exhausted all these options, then go ahead and frame your question. Don't make it as long as an essay. Keep it succinct. Mention your ask in the first two lines.

Bugs and debugging is a part of the job

You literally need to be patient with the debugging process. The only reason why engineers have jobs is because they're hired to solve problems. You really need to have patience and an attitude to solve problems.

I was stuck with countless bugs on my main project. Most of them were environment-related issues, some of them were access and security-related issues, and some were issues with my understanding of a new tech stack. After times of frustration, I learned that issues are inherent when it comes to engineering. I'm literally there to solve those issues.

That has helped reframe how I approach bugs. I won't claim that bugs don't frustrate me, but now I've learned to have patience with solving them. Don't get me wrong - I still hate bugs but now I've learned that it's my job to solve them and having bugs while writing code is a normal process and doesn't reflect on my abilities as an engineer.

I've come up with a 2 x 2 matrix of what I've done and what hasn't worked whenever I'm debugging.

What have I done to fix thisDid it work? What was the result?
Brief explanation of the fix
Links to what I found onlineWorked + screenshot of logs
DIDN'T WORK - well why? what questions do you have?

Go prepared to the standup calls

Go prepared with your summary of what you've worked on for your standup/scrum call. Also, one thing I wish I would've done more is ask more questions in the parking lot. Please don't feel like you're taking someone's time too much. Obviously, there should be some balance but please make sure you're asking questions and learning. They're LITERALLY there to teach you as an intern.

On days you're really stuck, just ask questions in the parking lot. It can be challenging because you might think that the team has other pressing items on their plate, but honestly they're here to guide you.

Don't assume about the experience without experiencing it

Honestly, it's easy to assume about the culture of your team or the culture of your company based on reviews off Reddit/Blind/Cscareers/discord, etc. But once you're in there, leave assumptions out the door. Engage in the experience entirely and evaluate for yourself what you're experiencing. It's easy to label and start creating a narrative based on others' reviews. Don't be quick to judge and always keep your perspective in place. For example, a person who might have a reputation for being irritable might not actually be irritable when you approach them. You, how you behave, how others perceive you, and how the situation unfolds are so many variables that you can't control or assume or predict. So let people be themselves and judge them according to what you've experienced.

I say this because I met a person who I assumed to be unfriendly but he turned out to be really personable and I learned about his background and what motivates him as an engineer. Having a short conversation with the person really made me question my assumption. I learned that we tend to be quick to judge because it makes sense from a survival perspective - is someone or something safe or unsafe? But when it comes to low-risk situations, being quick to judge someone can actually backfire. So learn to observe, experience, and then judge instead of assuming.

It's human and also natural to be sad or bittersweet when your internship comes to an end. I'm definitely feeling that right now so here I am writing and reflecting on my experience. I plan on sharing more thoughts and bits of advice in my next post.