When I started at Credit Karma, it was my first internship outside of Toronto. As a Computer Science student at the University of Waterloo, I have the opportunity to complete six internships; Credit Karma has been my third. So having done this two times before I had learned one very important thing: what you get out of your internship is heavily dependent on the work you put in. I’m proud that I got to work on Credit Karma’s first Web Push Notifications, so I’ll share what I’ve learned about having an impact as an intern.
While there are many factors that can impact your internship experience, such as supportive and all around amazing managers/mentors, I do believe that ultimately it is up to you to seize the opportunity you've been given. There is nothing more gratifying as a young professional than wrapping up the final weeks of your internship and knowing that the work you did mattered.
Talk about what you want
As an undergrad student looking for your first internship, you will likely not stop too much to think about what kind of work you want to do. Personally, I was just hoping somebody would take a chance and hire me with two semesters worth of coding experience in Racket and C. This self doubt and lack of experience leaves many of us scared to speak up about what we want. Before you apply for internships, ask yourself, what kind of company do I want to work for? Do I want to work on product? Or maybe infrastructure? Frontend or backend? Maybe you don’t even want to be coding at all, the options are endless. These decisions do not have to be the endgame - internships are all about experimenting to find your fit.
When I began applying last semester, I was set on working at a tech company (preferably fintech), which I did and I loved it. I was also convinced that I would be a frontend developer, but I ended up working on mostly backend work, which I also loved. After you think about the things that you want, talk about them! Talk about them to recruiters, your interviewers, and eventually your hiring manager. Throughout my interview and hiring process, I was often asked what it was that I wanted to get out of my time at Credit Karma and I always responded with the same answer: I wanted to work on a project on the product side that I could see through and I wanted my time at the company to have an impact. Talking about these things prior to my start date definitely had an effect on how my internship was structured. My internship was focused on one large project that I was able to take partial ownership of.
Check in on your progress
When I started, I was excited to find out that I was going to be working alongside another intern, John, on implementing Web Push Notifications on desktop and Android browsers. (I recommend reading John’s blog post about the value of asking for help.) During my first week at Credit Karma I sat with my manager and outlined my goals for the summer. I told her that not only did I want to take the Web Push project from start to finish, I also wanted to advance my technical skills. I wanted to learn about the structure of a tech startup (I use the word startup loosely since Credit Karma has more than 75 million members in the U.S. and Canada and hundreds of engineers). We talked about how I could achieve these goals with the team’s full support. We set up a weekly one-on-one meeting to track my progress. This was so helpful that I decided to set up similar one-on-ones with my mentor, as well.
It’s important to keep your managers and coworkers involved in what you are doing. I encourage everyone starting an internship to outline their goals either for themselves or to share with their manager. If you feel like you are not communicating enough with your manager, set up a meeting, let them know. If you’re unsure about how you’re doing, ask for feedback! Scratch that, ALWAYS ask for feedback regardless of how well you think you are doing.
Participate in discussions
One of the biggest challenges of an internship by far is the information overload at the very beginning. You have to learn the architecture, the various codebases, the testing tools, version control tools, and possibly new languages, frameworks, the list goes on. I won’t say this ever gets easy, but as someone working in tech, it is something that you should get used to. My best advice is to always ask for help.
On my first week I sat terrified, staring at my screen as I tried to navigate the massive core codebase at Credit Karma. Feeling like I was admitting defeat, I asked one of my teammates to help explain something to me. Talking to him about the code not only helped me understand it better, but also helped me realize that I am not the only person who has felt lost at the beginning. My coworker attributed this to the feeling of “imposter syndrome,” something he experienced personally and claims many engineers go through.
As you frantically spend your first few weeks trying to absorb as much information as you possibly can, you will inevitably find yourself in meetings with your teammates. Given the importance of the Web Push project we were working on, I found myself in meetings with people of all ranks. From senior software engineers to managers, it was easy to feel intimidated and like I should just stay quiet. My advice is to go against that instinct and speak up, whether it’s just to ask for clarification, to solidify your understanding, or to pitch one of your own ideas.
Get clear on the process
During my 12 weeks at Credit Karma I worked with many different people to create what would ultimately be “version 0” of our Web Push project. I learned that taking a project from start to finish involves much more than just sitting down at a desk and coding. The process is a whirlwind of discussions, roadblocks, and tracking down the right people to ask for help; somewhere in the midst of all that you find time to produce code. Luckily, one of the members of my team, Shawn, took it upon himself to take the lead on Web Push and become a mentor for John and myself. He helped us outline the different steps , break down the necessary engineering tasks, and connect us with the right people to ask for help.
I learned this process to take a project from development to deployment. It shows the true value of communication in the workplace and how you can leverage it to make the most of your time as an intern.
Internships provide amazing learning opportunities. As you’re exposed to the various tech stacks around the company you’ll very likely become interested in new technologies. I’m interning on the Engagement team where we do backend work on the email and push notifications system that is mostly contained in Credit Karma’s monolithic PHP codebase. Now, per a company-wide shift to a services based architecture using an internally built Scala framework, our team is transforming the system into services.
With this in mind, it was an obvious choice to make our Web Push project incorporate services as much as possible. The majority of our project’s backend logic happened in the service, with a controller in the monolithic code that would act as an interface between the frontend client and the service. When I started at Credit Karma, there was a lot of conversation going on about Scala which got me really excited about it. I started reading up about the language and working on a tutorial. I made sure to express my enthusiasm about working with Scala and was given a part to do for the Web Push service. I will say the work that I did in Scala was much more challenging than the PHP code I worked on. As I was warned, Scala has a steep learning curve but it’s a very interesting language.
As an intern, oftentimes once you have finished work on a project you may find yourself with little to do for the limited time you have left at the job. My recommendation at this point would be to talk to your managers about what you could work on, or even better, come to them with an idea of what you would like to do with the rest of your time. As we wrapped up work on Version 0 of Web Push notifications, I began to think about the next step: launching a product marketing campaign to enroll members. I reached out to our Web Push product manager about getting started on the promotional work. I was given the task of creating a Web Push guidance area alert that would be displayed on Credit Karma’s landing page on Android Chrome browsers. Working on the piece was the perfect way to spend my last couple of weeks at Credit Karma as it allowed me to gain even more developing experience and have even more of an impact within the Web Push project.
What about now?
Getting the opportunity to work on a real project that will be deployed to more than 75 million members in the U.S. and Canada has been a whirlwind of an experience and a truly amazing one. Throughout my time at Credit Karma I’ve gained not only valuable technical skills, but I’ve also learned how to take charge of my own experience and work hard to achieve goals that I set for myself. As I wrap up my last few days, I am always happy to remember the work that I have done will be seen - that I did in fact make an impact.