The Experience of a Varo Intern

Elijah Achu
Engineering @Varo
Published in
6 min readDec 20, 2021

Introduction: My Internship Experience

This year I had the opportunity to work with Varo Bank as a software engineering intern on their front-end web development team. Leading up to the first day of the internship, I was eager and excited to work as a software engineer in the “real world.” Having developed mainly personal projects, adapting to working on large-scale projects was challenging. It was a different experience, specifically in the scope. When working on personal projects, the goal is to get the code to work while keeping coding best practices in mind. However, at Varo, along with the development skills needed, there is a focus on end-users that I had not previously encountered in my work. This was made evident in our web team meetings, where we discussed the technical decisions that Varo was making. The passion that team members expressed during those meetings led me to understand that Varo’s people-focused mission extended into the workplace and guided the goals set by individual team members. Along with my work in the Web Development team, I had the opportunity to meet with the Product and Media teams at Varo. These experiences have given me a deeper understanding of the technological needs within the fintech industry and the accessibility needs of the end-users.

Background

To lay the groundwork for my experience at Varo, I must begin with a bit of background. I am an African American student at the University of Maryland and a child of first-generation immigrants from the country of Cameroon. This starting point — though it may seem to be a disadvantage in terms of the resources — gave me a mindset of growth and an understanding that there are many opportunities for those who diligently seek them out. The relative lack of resources gave me a desire to understand how the world worked financially and what role technology had in that equation. This began my love for technology and led me to declare my major in computer science and economics.

Although I officially got into the tech space as a sophomore in college, the seed of my interest in tech had been planted way back in elementary school. Growing up, I didn’t always have the newest toys, trinkets, and gadgets. However, when I would get my hands on a remote-controlled toy, I always managed to break it shortly thereafter — which in hindsight might be the reason why I didn’t get the expensive devices. Those moments were the beginning of my interest in technology. Instead of asking for new stuff, I would take the old ones apart, reconnect batteries, wires, tires, and propellers to bring the broken parts to life in a process that might be best described as a grade-school child’s attempt at building a robot Frankenstein! By connecting battery packs on one toy to the motors on another, I essentially turned an RC car into an uncontrollable driverless vehicle. I’m sure Elon Musk would’ve been proud. What made this possible was my dad’s work as an electrician with Verizon, so there was no shortage of tools to use in my experimentation. That interest grew throughout middle school and high school. During this time, I became fascinated with apps, websites, and iPhones. It was wild that everyone was using these technologies, and absolutely no one around me knew how they worked!

Later, it came time for me to choose a major in college. Everyone in my family was in the healthcare field at that time, and the track that was set out for me was to do the same. Fortunately, I decided to stray as far away from that as I possibly could get away with when choosing a major, and that was bioengineering. To cut a long story short, after two years of biology labs and chemistry courses, I finally decided to pursue my interest in tech with an intro web development course at the University of Maryland. After doing a year of computer science courses, attending the Coding Dojo Bootcamp, and learning about the internship application process in the Black Engineers Society at UMD, I felt confident enough to begin applying for internships. Through the CODE2040 program, I found Varo Bank, and the rest is history.

Being a remote intern

As we are still going through a pandemic, many people have had some experience working remotely. As we can all attest, there are some upsides and some downsides to remote work. Personally, I was looking forward to the opportunity to work side-by-side with other developers in an office setting. As an extrovert, I do my best work around other people. I find it easier to ask questions when I can raise a hand as a colleague walks by or knock on their side of the desk to get their attention. With that in mind, I thought it would be difficult to build relationships with coworkers in an online environment. Thankfully, this wasn’t an issue at Varo.

In the virtual work environment, my coworkers took an extra step to ensure that I had the support that I needed. From the onboarding process to writing my first test document, I found that setting regular meetings with various team members made work feel more natural. Those regular meetings often functioned as co-working time, where nothing specific was discussed but there was someone on the other side of the Google Meets or Slack call in case anything came up. This made it easier to share blockers and solutions to whatever problems I was having at the time. I find that this sharing helps declutter my mind to make room for solutions to arise. Having that time to talk freely without a predetermined purpose is what I missed with fellow students during online classes and what I rediscovered with coworkers while at Varo.

Critical work as an intern

As an intern, I learned and improved my ability to use coding languages, development tools, and libraries to fix bugs and add functionality to Varo’s front-end desktop website. This included learning to use TypeScript — instead of JavaScript, which I had used before — apollo, enzyme/jest, GitLab, and redux. I used these tools to fetch data from the GraphQL database, create unit tests with the goal of 100% test coverage, manage my merge requests, and write code to make the appropriate changes in our codebase. The work that I found most interesting was when I was allowed to explore Redux to create a solution to update issues on the Varo Advance page. Varo Advance is a feature of Varo that allows users an advance of $100 to use when they are low on cash. This ‘cash’ has to be repaid, but users can do so without penalty. The issue was that the advance amount would not automatically update after the user made a payment. This issue could lead to a user submitting multiple payments if they did not refresh the page to see the updated information. With this task, I had the opportunity to develop a solution that required making more extensive additions to the codebase by building a redux reducer to update the value displayed on the advance page automatically. The goal was to have the value automatically update whenever a change was made to its value held in the Redux “store” (a name for the place in the code that holds the current value of all the constants). In this process, I learned how to use Redux, gained experience reading documentation, developed a robust solution to the problem, and ultimately realized that in this process I was attempting to drive in a pushpin with a jackhammer. Funny as it is, upon review of what I had, one of my colleagues whom I will refer to as Paul enlightened me to the fact that my solution was great for a global issue but was completely unnecessary for the changes it was attempting to make to a couple of components. It also did not address the need to pull and update information in the database. In that process, I realized I had created a global solution to a local problem and neglected a critical issue of ensuring that whatever changes I made to user information being displayed came directly from the database. Otherwise, we run the risk of having distinct values stored for the same field.

Conclusion

Returning to school after my internship has left me with a wealth of knowledge that I carry with me as I continue developing my software engineer skills. The path I have taken to get here has been anything but straight. To anyone looking to get started with a new bank, I say Varo is the place to go. It’s rare for people to see how an organization’s mission is executed on the inside, especially from a tech perspective. I know that Varo takes its mission to heart, and its recent growth is indicative of the strength of that purpose. Overall, I am glad that I had my introduction to the fintech space working as a software engineering intern at Varo.

--

--