I did have to sign a NDA, so I can’t go too in depth on
certain things. But I’ll do my best to capture the essence of it and my feelings.
I have been working in the tech industry since I was 18, usually with local companies and startups. Goldman Sachs
however was my first big internship, and boy was I excited to get to work in
FinTech for one of the largest companies in the space. I went in
thinking maybe I’d get to leave a small mark on the tech ethos of the company and they’d leave a mark on me as well.
I accepted an offer to intern in person at the Salt Lake City offices.
After going through all the bureaucratic processes of getting my ID scanned, sending my proof college enrollment, social
security, etc. All the interns had to go through 2 weeks of training where we’d clock in and join zoom session after
zoom session learning all the internal technology that Goldman uses plus certain department specific technology. Later I
came to realize that they have a culture of building things inhouse and it shows. The amount of in-house tech Goldman
has is astounding, it can be both impressive and scary at the same time when you’re not used to it. However I did have
some familiarity in some of the technology that they used like
Git, GitLab, etc.
After those 2 beginning weeks we finally went in person and it was both thrilling and exciting. I had been working from
home for 2 weeks in this training and finally I got to meet my team in person and see where I’d be working. I was paired
with another intern, she and I got along pretty well right away. We were located on the 8th floor of the SLC office
building, complimentary lunch every day, and a great coffee machine. What else can I ask for.
View from my office
I will admit, I went into it with the preconceived notion that all the
that you’ve probably heard about Goldman Sachs were true (at least to some extent). However I can honestly say that I
was pleasently surprised. That isn’t to say that there weren’t bad parts, I heard from some of the finance interns that
things were quite cut-throat and there was a culture of one-upmanship. However I didn’t experience much of this on the
tech side, most teams were really communicative and welcoming with us. One thing that was immediately apperant to me
was this company wide culture of getting things done. If you ever need help with something critical someone will
step up and help you, there’s a strong focus on the product, customer, and always delivering on time. You will never
hear someone say “that’s not my job“.
My team was quite pleasant, we organized several outings where we went out to for drinks, eat, hike, and once to just
hang out at a co-workers house. It was surreal, I was only an intern that would potentially be there only 3 months but I
found myself becoming part of a family. They were all awesome and collaborative people that I could talk to about my
personal life or my career and they had my best interest in mind. I hate the work cliches as much as the next guy, but I
truly felt like I was in a good environment to thrive and push myself to be the best that I could be. I think I got
really lucky with my team and I wouldn’t of picked any other team to pass that summer with.
I did find that a lot of interns were coming from these prestigious (Ivy, UCs, CMU) Universities, particularly finance
and business interns. I will admit that I was abit demoralized at first, having come from the University of Utah – a
state school (a good one nonetheless). But I soon came to realize that at the end of the day, we’re all working in the
same place and I should just do my best regardless of circumstances out of my control.
I made friends with many of the interns whom I’m still in contact with today and we regularly chat about our experience
and how much fun it was. There were several Goldman organized social events throughout the summer going to different
notable locations like the The Leonardo Museum. The highlight of the summer was when Goldman
organized for us interns to go to the Utah Olympic Park
where I got to go down a zipline, eat a bunch of great food, and socialize with the other interns. Some interns took it
upon themselves to organize bar hopping events, parties, and small movie watching events. I only partook in one of these
bar hopping events because it was a bit too wild and some drama went down which was entertaining but energy draining to
say the least, but to each their own. I not only got to meet amazing engineers from different teams in the company, but
I also got to meet awesome engineers from other intern teams and hear them talk about their projects and experiences.
We were given our project assignment and we got to work! It was extending the functionality of an exisitng webapp to
support a variety of different functions, largely it was to support a dashboard that contained a lot of aggreggated
company and application data, and which interacted with an action and event system. I mostly focused on the
infrastructure and architecting of the whole thing as well as the backend, while my partner focused on the frontend.
After a week of just trying to read through the code base and seeing where we could start building this, as well as some
help from our team to get things going, we finally devised an initial tech spec.
The first I noticed was the old tech, as I mentioned before there is a lot of internally maintained technology and
that’s good for a few reasons like the fact that you’re just a message away from contacting the world wide expert for
the technology you’re using. But it can also have it’s downsides, you don’t fully benefit from the fruits of Open Source
and it could lead to stagnation and slow development. This was definately immediately apperant in that they still used
some older technology in their applications. This was partially remediated by the plethora of teams working on
building new cloud technologies and transitioning to more modern tech solutions.
Not long after, I realised that most of the things we wanted to do were just not possible in the existing backend, thus
why I think it was given to us interns. So I set out to mostly work on scaffolding work and building out the structures
in the backend for us to be able to do what we wanted, which was to aggreggate all this data from different sources and
correctly represent it. This took a while… it was the largest chunk of time spent in the backend and was what ate up
most of my development time. Mostly because when I built it, I wanted to allow for extensability of this API and all the
backend logic to be used by other projects and application in the future. After finishing this, building the endpoints
was a piece of cake.
Finally we finished building this backend and I realized that because of the sheer mass of data that we were sending to
generate this dashboard we would need to implement caching. At first I implemented client-side cache in the frontend for
the more atomic data that was more closely tied to the
individual user that was using the dashboard. I then had some time nearing the end of the internship to dedicate a
complete week to just optimizing things and building some caching on the server. So I implemented a server-side instance
level cache to hold most of the cold data, that wasn’t changing that often. And just having a asynchronous process
refresh the cache every 24 hours at midnight. But even then it wasn’t enough, when the frontend sent a request for too
many data items we would exceed the
maximum URL length for chrome. So I came
up with a solution to shorten the query length by keeping only the critical query data, which reduced the character
length only 50% of the original character legnth allowing me to reconstruct it in the backend and finally we were able
to support the load, and it even resolved faster. I also ended up helping with the frontend near the end to get some
features done and implement some extra features that were not on the roadmap, but that we knew would be a good addition
based on what we could do with our API and the needs of the stakeholders.
In the end we woke up at 6am, drank copious amounts of coffee and presented the project at 7am in a department-wide zoom
session which included several Managing Directors and other leaders in our branch, it went really well. They asked
questions and were very pleased with the application and all the work we had put in. I can say that because of our
performance both me and my intern partner got return offers, and I even got a seperate offer from another team who was
at the meeting and thought what we made was cool.
Overall I had an amazing time. I got to meet some amazing people that have become life long friends, I learned so much
not only about tech and the industry but also about collaboration, garnering a postive team environment, and how to grow
as a person.
My team at the Leonardo Museum