Nikhil Ghosh is a rising junior at Wesleyan University in Middletown, CT, where he studies computer science and economics. Nikhil recaps his summer at Tala and reflects on the work he did as an intern on Tala’s backend engineering team!
Q: Tell us about yourself! Where are you from and what brought you to Tala?
A: I’m from NorCal — I grew up around the Bay Area, primarily in Palo Alto. Beyond reading about computer science and economics, my interests fall into a few different areas: music (listening and playing), soccer (playing and watching), cuisine (eating and cooking), old movies, and nonfiction.
I heard about Tala from a Wesleyan alumni who I’d connected with in years past. When I first saw Shivani’s Ted Talk, I was intrigued. Reading the Tala blog and speaking with Tala’s engineering leadership throughout my interview process impressed upon me the extent to which Tala’s culture and norms are linked with its mission driven mentality, and the impact I could have as an intern on a tight-knit engineering team. Having worked as the first intern at an early-stage software startup last summer, I was looking for a similar opportunity to work on a real product and make an impact, so Tala seemed an ideal fit.
Q: Walk us through your summer with Tala’s backend engineering team! What was the main project you worked on?
A: I worked on building an API that interacts with our Android app and creates a layer of abstraction for handling app flows, while enabling experimentation at a higher level of ease. The product’s purpose is to enable our data science or credit teams to define custom flows and release them to subsets of users without having to write any Android-side code. By making A/B testing as simple as drag-and-drop operations, we can leverage the ability to iterate rapidly and combat fraud by making well informed and meaningful changes to the product. I also spent significant time working to integrate our app flow service with Kinesis, a data streaming service by Amazon Web Services (AWS).
I kicked off the summer with pair programming — I’d describe it as tandem-biking with an experienced engineer throughout Tala’s codebase. Following pair programming, I was assigned tickets — each one representing a small feature within the module — and made individual contributions. The “day-to-day” mimicked an engineer’s workflow, and the process permitted me to dive into and explore the codebase. In the code review process for one ticket, I received a comment remarking how much duplication there was between tests. In response, I created a test framework which cleaned up the test code, and made it easier to read, write, and debug. While also increasing the project’s code coverage, I set up safeguards to enforce coverage thresholds, both locally (in a build file) and on Jenkins (our automation server). It was really fun to take a comment, expand it to a working ticket, take it on, and see it through!
I spent the latter half of the summer collaborating with my co-intern, Molly, to centralize Tala’s backend by setting up AWS Kinesis as a shared stream of event data, to allow us to collect and analyze client side (Android) and server side (our own processes) events. This involved writing an AWS Lambda function in Golang to send Android user events to Amplitude, our product analytics service. After linking the Lambda function with Kinesis, we integrated the flow service module with Kinesis. The latter entailed using the Kinesis Producer Library API, part of the AWS SDK. Creating this shared stream with Kinesis not only allows us to log events to Amplitude, but also provides the Tala team with the potential to save those events to our own hosted systems (i.e. a Snowflake instance.)
Q: What did you find most interesting during your time at Tala?
A: The extent to which Tala’s teams are cross-functional is mind boggling. During the first few weeks of my internship, I realized that several individuals who’d given me incredible explanations of how different aspects of Tala’s product function, didn’t even work on those teams! Tala-ites have an excellent understanding of how the various components of Tala’s product interact and function. Tala’s collaborative atmosphere allows this shared awareness, which enabled me to learn quickly as an intern.
Tala’s engineering culture really embodied the key value of “Take The First Risk,” one of Tala’s founding principles.
Q: Can you walk us through the biggest challenges you faced at Tala?
A: Outside of task-specific things like learning language-specific syntax and frameworks, the main challenge was trying to thoroughly understand Tala’s overall architecture. Gaining insight into the decisions behind the design was a good way to gain an understanding of the many microservices that make up Tala’s backend. Such understanding required significant background knowledge, so one challenge was doing the deep reading and making sure to ask the right questions at every stage.
It was my first time working with an Android application, so learning design patterns was difficult at first. Understanding the flow service project at multiple levels of abstraction was an ongoing challenge as well. Pair programming really helped across the board, because they served as tours through the codebase — with experienced guides!
More broadly, it was key to “stay uncomfortable” in order to keep learning every day. Through this spirit, I gained invaluable technical knowledge, familiarity with best practices, and observed the upside of a collaborative engineering culture — all lessons I can easily apply to my future endeavors in the software industry.
Q: What were some highlights of your experience at Tala?
A: Being trusted to touch and contribute to production code from the get-go was a huge highlight. At larger companies, interns typically don’t share the same level of access to the codebase as full-time engineers — in contrast,Tala’s engineering culture really embodied the key value of Take The First Risk, one of Tala’s founding principles. I had made my first PR (code submission) to a Tala repository within the first week — and as an intern, at that! This speaks not only the level of trust afforded by Tala, but the high quality mentorship I was lucky to receive from the other engineers. I found that I thrived while working within the production lifecycle. Helping with critical testing efforts to launch an initial version of the API was thrilling, and the urgency made me feel like an actual part of the engineering team.
It was incredible to have such a good time outside of work, then show up on a Monday morning with the same folks, and get right back to it.
Outside of work, some of my favorite memories of this summer involve Tala-ites. From the soccer pitch, beach clean-ups, and watching World Cup games at the Britannia Pub, to racing Go-Karts in Torrance, there was no shortage of fun things to do! It was incredible to have such a good time outside of work, then show up on a Monday morning with the same folks, and get right back to it. Having never lived in LA, it was a lovely taste.
Q: How much time do you have left at university? What are you hoping to do after school?
A: I’m in the class of 2020, though I’m considering graduating in December of 2019. I can see myself working for a few years after undergrad before pursuing a Master’s degree to gain additional academic depth.
Want to build with #TeamTala? We’re hiring!
We are data scientists, engineers, customer experience designers, people-oriented professionals, marketers, and finance geeks all passionate about extending financial freedom to the billions of underserved people across the globe. We believe in people from every type of background — around the world, and within our company. We call this #RadicalTrust.
Come join our global team at Tala.co/Careers!