To Affinity and Beyond — Thoughts from my Internship

To Affinity and Beyond: Thoughts from my Internship Hey, everyone, thanks for clicking on my blog post! A bit about myself — I’m a CS student currently taking a gap year before finishing out my senior year of college. After switching from pre-medicine to CS my junior fall and completing an internship with a big bank that […]

To Affinity and Beyond: Thoughts from my Internship

Hey, everyone, thanks for clicking on my blog post! A bit about myself — I’m a CS student currently taking a gap year before finishing out my senior year of college. After switching from pre-medicine to CS my junior fall and completing an internship with a big bank that summer, I wanted some time to explore and learn as much as possible in the tech field (and pursue my other passion in dance)! In this post, I just wanted to take a minute to talk about my spring internship at Affinity in San Francisco!

Of course, I want to preface this assuring you that everything here is my own opinion, no matter how glowing the endorsements are — I really did just like it that much here! Read on to find out what Affinity does, what I worked on, what a day at work was like, what makes the company different, and what I learned from my time here.

Affinity’s Mission

Affinity is a platform that uses data from your communication streams to help you understand and manage your connections. Started in 2015, founders Ray Zhou and Shubham Goel envisioned a world where anyone could achieve their goals — land a dream job, close big deals, or start a company —by using their networks to have the right resources at the right time. It’s this vision that guides Affinity to this day: using technology to harness your most valuable resource — your network.

Shooby and Ray — our fearless leaders, circa 2015.

Affinity as a company is still pretty young and lean, but scaling quite rapidly. In just 10 weeks, I saw it grow in almost every aspect — new hires, evolving features, and uncharted markets. To me, a smaller startup with this kind of upward trajectory was the perfect place to learn as much as possible and really understand a growing company — exactly the kind of opportunity I was looking for during my gap year.

Technical Learning

It honestly baffles me to look back at how much I grew as an engineer in just 10 weeks at Affinity. I learned a whole new programming language (Ruby), grew more proficient in frontend development using Typescript, React, and Redux, and even learned a bit of SQL and system design as I learned how each component of Affinity’s architecture fits together. I worked on a variety of projects as well: mobile development, implementing new features on their core web product, and developing their relatively new Alliances initiative!

With so many resources out there, you really don’t need an internship to learn and practice a new programming language. However, there are some things that you can only learn by working on a living codebase — one that grows, changes, and needs to be maintained. Because Affinity is both relatively young and scaling relatively quickly, I could observe their distinct focus on good programming practices: establishing standards of clean code, codebase design, and naming conventions in addition to the effective enforcement of these standards. At the end of the day, these development frameworks are definitely the most valuable technical lessons I took from my internship at Affinity.

A Day in the Life

So what does a day in the life of an Affinity software engineer look like? It definitely varies by the day, and this variety is what made the experience so interesting — so maybe think of this as a bit more of a sample platter of a day at Affinity!

Views from the first day. Apparently I didn’t waste any time finding the snacks…
  • 10:20AM — The engineering team warms up with a quick group game before standup, where we make announcements, update each other on projects, and make sure we’re all at work at a reasonable time. 👀
  • 10:30AM — Once or twice a week, we’ll have opportunities for some learning outside our day-to-day work in the form of technical deep dives, or engineering book club discussions (while I was here, we read Brotopia —which I highly recommend).
  • 11:00AM — Work until lunch! This was usually a good time to pair with other engineers on work, which was super helpful to me as an intern trying to learn the ropes.
  • 12:00PM — Affinity sponsors our lunch, so grabbing a meal around the area with a small group was a great opportunity to get to know other coworkers and try out some of SF’s many great restaurants. With Affinity’s office situated in SF’s financial district, there was never a shortage of great food to discover!
A great view of the Bay Bridge on one of my afternoon 1:1s with Sean!
  • 1:00PM — Focus time! Whether through policies of not bothering people with headphones on to having no-meeting afternoons every Wednesday and Thursday, Affinity is really good about making sure we have stretches of time to really focus on our work. That said, there’s always something to look forward to in the afternoon — açaí bowls on Mondays, boba on Wednesdays, or even just a 1:1 with someone I haven’t talked to in a while.
  • 6:00PM — Every two weeks, Affinity has a company dinner, usually followed by board games or some very competitive games of Uno. Just another opportunity to unwind and get to know other people on the team!

What Makes Affinity Different

Maybe you could get a sense from the previous section, but Affinity does things a bit differently. My previous software experience included internships at both a major bank and a 10-person crypto startup, and Affinity is certainly nothing like any other company I’ve worked for.

In just my first weeks, what really stood out to me was how well they take care of new hires. Their onboarding process and tasks to help familiarize me with the codebase was incredibly streamlined and helpful (shoutout to Hansen on this one — check out his post to learn more)! But at the same time, it was also very holistic — part of my onboarding included shadowing sales pitches and customer success calls, which helped me really understand the company as a whole, not just the engineering team.

Throughout the internship, it was clear that Affinity really cared about you as an individual. Rather than just making sure I pushed code, my manager Shrey would meet with me to give me feedback on my work, have conversations to get to know my background and what motivates me, and to even give me career advice and make an action plan for my next few years. Since I was just an intern only there for 10 weeks, Shrey really didn’t have to do any of that — but it was something I really appreciated.

Truly, what really made this internship special was the people. The team is relatively young, but consists of some of the most welcoming, intelligent, and passionate people I’ve ever met. These are people who could not only help me with a nasty Redux bug or diagnose some erratic Sequel queries, but also DJ a trap set at a club, write their own alternative and jazz music, perform magic, go to a dance class with you, or teach you how to cross-stitch at art club!

Learning cross-stitching after work, and the final result of my new hobby (modeled off this)!

Not to mention the variety of team bonding events I was a part of in my short time here — a company 10K, a week-long engineering team hackathon, a San Francisco scavenger hunt, and even a trip to Daly City for some axe throwing!

Who knew throwing axes at a piece of plywood for 3 hours could be so fun?

What underlies all of this is Affinity’s focus on its five core values — from interviews to public shoutouts on Slack, they were apparent throughout my experience. Personally, just working with this engineering every day proved that Affinity not only looks for people who are always learning and take pride in their work, but will also care about you beyond work, doing whatever they can to help you and the company succeed.

Some Words of Advice

When finally making the decision to take a gap year, I had one broad goal in mind: to not waste it. So I flew back home to Orlando in November, and (between numerous games of Catan with my family) promptly spent all my time recruiting for internships for the fall, spring, and summer. After spending the winter at a crypto startup in NYC, I was fortunate enough that Affinity allowed me to join as an intern for the spring. So before I go, I just want to offer a bit of advice to anyone who may also be in the internship hunt!

Choosing an Internship

  1. Don’t be afraid to take “risks.” Some new grads are averse to smaller companies because of the inherent “risk” of less brand name, or the chance that the company might suddenly fail. But the way I see it, being a young new grad in tech starting their first job comes with a pretty high ceiling, but also a pretty high floor — even if you take those chances early in your career and they don’t work out, your experience is still inherently valuable, and enough demand exists that you will be able to find more opportunities if you try. So perhaps the real risk is in not taking these chances at all!
  2. Optimize for learning. When looking for internships, try to look for new experiences that will help you explore a new realm of tech, work on a cutting-edge technology, or will generally just allow you to continuously learn something new. Between marketmaking for a stablecoin cryptocurrency in the fall, working on relationship management software with Affinity in the spring, and building out architecture for high-frequency trading this upcoming summer, my gap year internships couldn’t be farther apart — and that was by design. Even if you end up not loving one specific company, the experience and perspective you gain on your own goals and passions is inherently valuable.
  3. Culture and values are everything. These two things will underlie your entire internship experience, and finding that right fit will allow you to make friends, find mentors, and create memories that will remain long after the internship ends. So how do you find the right culture? Ask questions! Your interviewers are resources for you to get a glimpse into the company — definitely learn as much as you can from them!

During Your Internship

  1. Take notes. I started using Evernote to take down everything I learned and was working on throughout the internship. Not only can it be a helpful reference, but it also helps trace the story of your whole experience at the company as well.
  2. Don’t be afraid to ask questions. At Affinity, they made it very clear that helping and unblocking newer hires is one of the most high-leverage activities anyone on the team can spend time on — to the company, it provides the most benefit for the least effort. So don’t be afraid to reach out; everybody on your team wants you to succeed!
  3. Stay hungry and excited, or work on something else. When optimizing for learning, I find that working on something I’m personally excited about provides that drive that makes me want to learn as much as possible. Make sure you are continuing to learn, and tell your manager if you feel like you’re running in place.
  4. Get to know your co-workers! As much as I came into my experiences wanting to grow as a software engineer, I instead found that sometimes the most valuable takeaways from an internship are the people you meet along the way — it sure was for me!

Thanks for reading, and huge props to Affinity for making my time in SF special!

To Affinity and Beyond — Thoughts from my Internship was originally published in Affinity on Medium, where people are continuing the conversation by highlighting and responding to this story.

Source: Affinity