Making the most out of internships
Context
In the summer of 2022, I had a chance to intern at J.P. Morgan Chase & Co. as a part of their Software Engineer Program.
Read about how I got the opportunity.
In this one, I have tried to compress all my learnings, observations and realizations during the internship; things I would have done differently and things I would have done more.
Pre Advice
- Always dress well.
Why should you dress well? How does it matter? Won't I be judged on my work or the skills that I carry?
Believe it or not, first impressions matter. It may not be the last impression, but it is a lasting one.
Here is an excerpt from one of my talks on Design Principles.
The first impression is not just the last impression, it is the lasting impression.
When it comes to apps, the first impression is created by aesthetics, not by value.
It is true for people as well. At least for most of them; especially when you work in corporate.
MIKE: What does it matter how much money I spend on suits?
HARVEY: People respond to how we're dressed so, like it or not, this is what you have to do.
Suits, S1 E1
Another good read by David.
Also, make sure your clothes and footwear are comfortable.
- If they are not comfortable, you will dread going to the workplace.
- If you dress well and comfortably, you will enjoy your experiences even more.
- Another side note, apply and carry perfume with you.
Invest in it. Invest in yourself. It will be worth it!
Reminder
They don't expect anything out of freshers or graduates; remember, you are an intern.
This is not to hold you back or to get you a laid-back behaviour. This is just a disclaimer if you feel pressured. (Also, remember).
What did I work on?
During my internship, I worked on a frontend migration project. I was working with a frontend team of four and a product team of twelve.
We built a multi-page application interface for an internal tool of CIB (Corporate & Investment Banking) operations; migrating the tool from Ext JS to React.js (with Redux). We utilised the internal JPMC’s UI Toolkit.
In week 1, I was done with the tasks they had planned for me for the month. And as boastful as it sounds, I realized I was sitting for a LOT of time. I was just shipping.
Important Realization
Eventually, after a few reflections, I figured that I could code for the rest of the life, or learn whatever new tech-stack that is out there; but I might not get these weeks back, in the organization, with these people.
I decided to make the most of it.
To understand the organization, to understand how things are done at such a scale and hierarchy — with factors like communication, operations, code integrity in mind.
In fact, the description for JPMC on my LinkedIn still says — Working 50 percent of the time; interacting with folks the other 50 percent of the time.
Things not mentioned on the Job Description
I used to observe, listen, ask, absorb and question whatever came to the mind. I noted them down, wherever accessible — Notes, Diary, et cetera.
Asynchronously, I used to block my colleagues', my manager's or my super-manager's calendars and discuss these observations and understand their thought process about it.
This iterative process helps you understand the system quickly.
Side Note: Always respect people's time. Be concise and to the point.
Over time, I realized that it was getting difficult for me to find a common time with my manager over the week. I wanted to communicate what I had been working on and what challenges I overcame.
I started to email him at every week's end with:
- What I did in the week
- What challenges I overcame
- What I plan to do in the coming week
This exactly was the point in my life, where I understood the value of asynchronous communication.
Unsolicited Advice
- Write your progress every day.
Work Logs are important — for manager, peer and self reviews, for resumes updates and eventually to notice patterns about yourself.
Also, write about things that are hard to quantify: communication, coordination, reviews, proactivity, conflict resolution.
I understood the value by reading these: Get your work recognized: write a brag document, Templates as Inspiration for Software Engineers and Engineering Managers
Plus, writing every day about my work helped me write those weekly emails effectively.
- Carry a notebook/diary.
To note down observations, questions, explanations, architectures, concepts, to-dos, et cetera.
These will later become a goldmine.
- Be enthusiastic
Even after a dreadful day, try to push yourself.
Test your limits. Go beyond your extremes.
I previously wrote about Interns —
Interns are hired for their fresh opinions, the energy that they bring, and the naïveness at looking at a problem. Which is very important.
With experience, we start self rejecting ideas based on the merit in our "thought". There's no rose without a thorn.
However, being an intern/having a rookie mentality gets you to experiment with things — exploring things.
The free nature of this ideology is something a lot of firms leverage. Leads to creation of new ideas. New solutions.
From "Apply to get rejected", January 9, 2023
- Make sure you are squeezing out your day.
You are short on time, the more you realize it, it's better.
My work hours were 11:30 AM IST — 8:30 PM IST.
I used to reach around 10:45 AM - 11:00 AM. No, I did not start my work early. In fact, I had a strict time policy. I would start on time, and log out from my desk sharp at 8:30 PM IST.
During that time, I used to have breakfast with different people in the cafeteria till 11:30 AM, almost everyday. I effectively met a lot of people like this across these vertical and horizontal divisions of the firms.
I used to have lunch with my complete team. And snacks with smaller part of my teams.
This way, I was engaging on different levels with different sets of people.
In fact, my every introduction included: how much time I have been here.
"Hey, it is my week 1 here." — A very simple icebreaker.
- Interact with all kinds of people.
I am still in contact with not just full-time engineers and VPs, but also analysts, CAs, CFAs.
Be curious about other teams and projects. It helps with exposure and a better understanding of the bigger picture.
- Be Proactive
Take part in all activities, turn on your camera, participate and interact with your co-interns and your HRs.
There could be a chance of events or hackathons happening around. Look out for emails and be proactive in general.
Ask if you can participate as well. I participated in a few of these. Remember, there is no pressure; they are not going to remember you.
Anecdote
Fun Fact: There was a hackathon happening in my last week of internship and I registered last minute. I also messaged the organizers about my details and my excitement to participate. I was mapped to a team based on the theme I chose.
Surprisingly, this was the first CIB PTT (Post Trade Tech) Hackathon happening and the location was Mumbai, India. A lot of Managing Directors and Executive Directors (from across New York, Hong Kong, London, Glassgow, Bengaluru, etc.) came in to judge and mentor the teams.
We interacted with just so many people, it was crazy. I also invited my friends and co-interns during our presentation :'))
Our theme was based on building micro-frontend architectures. The thought was to build a shopping cart like interface to select components (which are packaged micro-frontend apps) and stich them on the fly. Essentially, bringing in microservices development principles for the UI.
We built the prototype and then went in for the pitch. Well and guess what?
Probably, the highlight of the internship.
Saving the best for the last
Asking questions
Questions that may be uncomfortable, unorthodox, questioning the system - to understand the system and find potential flaws, if any.
Important: Do not take — "This is how we have been doing it" as an answer.
What kind of questions?
- About the Role
- What does a typical day/week look like in this role?
- What's the junior/senior balance of the team?
- How much freedom for decision making do individual developers have?
- About Tech
- What are the usual stacks used at the company?
- How do you use source control?
- How do you test code?
- How do you track bugs?
- From potential coworkers
- Who do developers tend to learn from?
- What do you like best about working there?
- What do you like least?
- What would you change if you could?
- About the Company
- How are requirements/expectations communicated? What is the hierarchy like?
- What does it mean to be successful here, and how do you measure success?
- What's the promotion process?
- Decisions during Conflicts
- How are differences of opinions resolved?
- What happens after pushback? ("this can't be done in the projected time")
- What happens when the team is under pressure and commits to work over their capacity/velocity?
Sky is the limit.
I listed a few questions I was curious about, here: tusharnankani/jpmc.
Find and filter more of these questions from viraptor/reverse-interview.
Fin
Tinker around, keep exploring.
Act like you are an employee on notice period, because you are!