Four Things I Learned During My Summer Internship with NerdWallet

August 28th 2019

The following article is part of a series of articles about our NerdWallet Summer Internship program. Jacqui Levitan is a student at Duke University and shared their experience as an software engineer intern. If you are curious about joining NerdWallet as an intern or full-time employee, please apply for one of our open positions!

I’ve spent the last 12 weeks of this summer as a software engineering intern at NerdWallet. I was embedded on the Sweep team — a team whose projects revolve around helping NerdWallet members make better decisions about how to move their money to maximize it. My project was to build out the backend API for scheduled transfers — a feature that will allow users to set up a schedule for notifications to transfer their money. Throughout my 12 weeks as a “Nerdling”, I’ve learned countless lessons — here are four of the most important ones that I wanted to share!

Lesson #1: Taking the time to understand the entire project at the beginning helped in the long run.

One of the sequence diagrams I created during my initial architecture design.

One of the first big chunks of my project was to create a technical spec. This involved coming up with the product requirements, outlining goals , and mapping out what the architecture for the scheduled transfers project looked like. I created sequence diagrams which helped me understand the ways the different services would interact based on the variety of actions a user could take. To help me learn about my project and how to design the architecture, I read through the product spec and many existing technical specs — both to understand what I would be working on and what my first task truly entailed. Although I didn’t realize it at the time, this was one of the most valuable pieces of my learning this summer. It set the foundation for all of the programming I would do throughout my internship. Whenever I was confused about a part of my project, I would turn back to the sequence diagrams to help me think through my task and remember how it was supposed to work. If I had not been assigned the task of creating the design doc of the architecture, I would have had many more questions during my project and would not have had the same understanding of how my work fit in with the rest of my team’s.

Lesson #2: There’s probably a library for that.

Quick anecdote: one of the big tasks for my project was implementing the logic for calculating the next transfer date based on the frequency chosen and the start dates. This seemed almost like a programming exercise for introductory computer science class — figuring out whether the month had 31 days or not, calculating when the next Monday in the month was, and checking to see if a year was a leap year. I initially wrote over 200 lines of code and opened up a pull request with all of this date logic. When one of my teammates reviewed it, his comment was “Have you considered using Relative Delta? It might make a lot of these calculations simpler!” Within a couple of minutes of reading about the Python library, I realized that I had made my life a lot more difficult and my code could be easily simplified by using this library. Just a couple of hours later, I had simplified the logic and gotten rid of 165 lines of code. This was a good learning experience for me — not only did I get great practice writing this type of logic, I also learned that when something seems like a common problem, I should do some more research on how to most efficiently solve it in the future. This is representative of another major thing I learned this summer — to take advantage of the wealth of knowledge around me and not be afraid to ask questions or for ideas from my experienced teammates!

Lesson #3: Presentation skills are important!

During a goal setting exercise at the beginning of the summer, I decided that one of my goals was to improve my skills on presenting the technical work I’d done throughout my internship. The first presentations I gave were after I completed the design doc of my project — I presented the architecture to my team, as well as members of the security and QA teams to get their sign offs. These presentations helped me gain confidence in presenting my work and my plan, and were also a way that I showed myself I really understood my project! Throughout the summer, I had daily stand ups which I also began to see as an opportunity to improve my descriptions of what I was working on. I began going into slightly more detail — instead of just mentioning the title of the ticket I was working on, I would explain specifically what part of it I was working on for that day. By the time our Intern Project Showcase came around, I felt prepared to present my project and answer any questions that people had for me. I had a few main learnings from this aspect of my summer. First — practice for other people and get feedback! Before my final presentation, my team scheduled time for me to go through my presentation so they could help me improve it. This helped me think of ways I could explain things to people who weren’t as familiar with the work I had been doing. Another takeaway was that coming up with questions that people might ask about my project and what the answers to those were proved to be very helpful. Overall, presenting my work was a great way to look back at what I had learned and accomplished during my twelve weeks at Nerdwallet.

Lesson #4: Have fun along the way!

Being at work for eight plus hours a day might sound like it wouldn’t be that fun — but the university recruiting team, as well as the Sweep team made sure to make it an experience that taught me a lot while being enjoyable. My team always made the work day fun — from funny conversations throughout the day to surprises on each others’ birthday to playful pranks. Our intern events were another highlight of the summer! They ranged from going to a Giants game to an escape room to a volunteer event and all were equally fun! I enjoyed participating in them all, and getting to know the other interns better, as well as other employees who would accompany us. Overall, having such a great company, team, and intern culture was a big part of making me successful at work and what made me look forward to coming to work each day!