3

My Summer as a SWE Intern

 3 years ago
source link: https://engblog.yext.com/post/my-summer-as-a-swe-intern
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Hello 👋! I am Dylan, a software engineer at Yext. I have only worked here as a full-time employee for a little under four months, but I spent the summer of 2019 as a software engineer intern in the New York City office (HQ). In this post, I’ll take a deep dive into my experience as an intern.

Pre-Internship

I received offers from a few companies, and by the time I received my offer from Yext I had narrowed it down to two companies. My primary goal for the summer was to learn as much as possible and to be a core member of the team, rather than an intern with a summer project. Yext also has the perfect balance between big and small for me; a big enough company to have standardized engineering processes and advanced tools, but small enough where teams still have a lot of autonomy. This appealed to me a lot, so a few weeks after my offer letter appeared in my email, I signed it and I could not have been more excited.

A few months before my start date, my recruiter sent a Google Form to all incoming interns where we could express our technical interests. Do we want to work on a product, infrastructure, or developer tooling? Do we want to work on frontend or backend? Do we enjoy working with Java or Go?

I decided that I wanted to work on a product with a backend focus. I was placed on a team that works on Yext’s Knowledge Manager, which is the engine that powers all of Yext’s other products, like Answers. The Knowledge Manager serves as the source of truth for a business, where they can input all of their facts to make sure that when a customer searches for the business, they get brand-verified answers. I worked on team T-Bone, the “Advanced Features” team.

Knowledge Manager

Mentorship

Each intern is assigned a mentor, who is their closest point of contact throughout the whole summer. I sat in the desk directly next to my mentor, Rohit, which meant I could easily stand up and ask him whenever I had any questions, which was quite often.

Rohit and I had weekly 30-minute 1-on-1s where we would take a deep dive into what I was working on at the time. We would often do 1-on-1s in a room with a whiteboard, so that he could explain some high-level design concepts to me. I looked forward to these sessions every week, because it was an opportunity for me to ask more broad questions about Yext’s architecture and technology as a whole.

Rohit and I would often pair-program, especially toward the beginning. By watching him, I learned how to quickly navigate the code base, how to diagnose problems, and how to debug efficiently. I also learned many amazing keyboard shortcuts.

In addition, I met weekly with my team lead, Rajeev. We would often take walks around Madison Square Park and talk about big picture items like general team direction, career paths, and company goals. Rajeev would always check in on my personal well-being as well, and would often buy me iced coffee (which is plentiful in the office, too).

Learning

Joining a new company, especially as an intern, can be quite daunting. My team worked primarily in Java which I had worked with a lot previously, but things like Bazel? RabbitMQ? TeamCity? I had never even heard of them.

Luckily, Yext has a plethora of code labs to help quickly learn any foreign technology. The code labs are mostly interactive, meaning they walk you through an exercise with the technology. In addition, teams have team-specific code labs meant to familiarize new engineers with the services that the team owns as well as team-specific technology. Yext continues to add more code labs all the time.

I spent my first few days running through code labs to familiarize myself with new technologies as well as our Git workflow. After that, I visited code labs as needed throughout the summer, and I still visit them often as a full-timer.

Here at Yext, we also have extensive documentation about all of our microservices and our shared libraries. We also have an extremely long log of Slack messages, which I used a lot last summer when wanting quick answers to questions.

Yext has two simultaneous engineering book clubs reading engineering books that meet on alternating weeks, and interns are welcome to join! While I did not take advantage of this during my internship, several of the interns in my cohort did, and I participate now.

Finally, all interns were invited to our Spring 2019 offsite in Ogunquit, Maine! This happened to coincide with my second week of work, and it involved a mini-hackathon as well as numerous educational talks given by engineers. It also involved eating a lot of lobster.

Spring 2019 Offsite

The Work

Many internships in the tech world revolve around the “intern project”, where the intern works alone (or with other interns) on a project geared specifically for the summer. Based on this and my previous internship experience, I expected this going into the summer. However, I was pleasantly surprised to find out that this was not the case with Yext interns.

At Yext, interns are regular members of the team. Teams here use the agile methodology with two week sprints, and as an intern I was involved in every step along the way. I participated in daily standup, helped to plan sprints, and talked actively at “retro”, where we looked back on the sprint and determined what went well and what we could improve on. I picked up stories just like any full-time member of the team, and worked on large-scale projects with a plethora of stakeholders.

For about half of the summer, I worked on a smaller project team with two other engineers redesigning one of our search services. The previous search mechanism used a traditional database lookup, but due to the increasing number of records we needed something more efficient, so we transitioned the service to use Elasticsearch instead. All of the planning for this project occurred before I joined, but I helped execute on the project by writing message handlers in Java to transform existing database records into Elasticsearch documents.

Elasticsearch

I also did some frontend work, integrating a new complex React component written by our UX team into one of our pages. This involved a lot of Javascript, as well as a little bit of HTML.

During my final week, I worked to create an architecture diagram for one of our services. I really enjoyed this project more than I thought I would, because it gave me a better high-level overview of how complex systems work at Yext. Here it is below!

Scheduled Updates Architecture Diagram

Most days I would arrive at the office around 10:45am (just in time for my 11am standup) and leave sometime around 7pm, unless we decided to stick around and play Super Smash Bros. after work, which we often did.

The Events

Every other week, the campus recruiters would take all twenty New York interns on an intern excursion to do something fun after work. We did a food tour, went to an axe-throwing bar (pictured below), sailed around on a lobster cruise, and much more. I really enjoyed the ability to socialize with interns on teams outside of my product area, who I would not normally see during the workday. These events made our intern class really close.

Interns at the axe-throwing bar

Additionally, we attended each of the Engineering monthly events, where the whole engineering organization gets together after work. My personal favorite was our excursion to Chelsea Piers, where we got to hit golf balls while eating some phenomenal hor d’oeuvres.

Chelsea Piers

Finally, the Knowledge Manager group entrusted me and two other interns with planning our monthly group event! After some careful deliberation, we settled on Break Bar, a really cool place where you get to smash things. We budget, planned, and executed this whole event for our entire group, and it was a smash (pun intended).

The Culture

My primary goal going into the summer was to learn as much as possible, and I feel like I accomplished that and more. Whenever I had a question, no matter how simple or complex, somebody would jump to answer it even if it wasn’t in their domain. When I didn’t understand something, everyone would be extremely patient with me and try to help me learn in the best way possible.

I learned last summer that Yext moves very quickly. We squeeze a lot into each sprint because we understand the importance of staying ahead of the curve. Whenever I felt stuck last summer, like I couldn’t finish a story in time for the end of the sprint, I always received the help that I needed in a swift manner.

Outside of work, I got extremely close with a few interns in my class, and even some of the full-timers. Most Fridays after work we would all hang out in our common area and sometimes go out afterward. People would always treat me really well and always make sure I got home safe.

One time I bumped into our CEO, Howard Lerman, in the hallway. I didn’t know what to say so in the most nervous voice possible, I told him we have the same alma mater (which is true). He then struck up a conversation with me as if I were one of his close friends. That is to say, everybody treated me like I was the same level as them, whether senior engineer, fellow intern, or CEO.

Conclusion

I went into the summer wanting to learn as much as possible, and I came out with more new skills than I could have imagined. Along the way, I also got to make some new friends and explore NYC. I loved my internship so much that I decided to join full-time! Yext treats their interns phenomenally well, and I wouldn’t have traded my experience for anything. I now work on a different team in the Knowledge Manager group, but I love it just the same. I am beyond excited to continue to grow at this really exciting, fast-paced company.

If you’re interested in a Yext intern experience of your own (or full-time roles), apply on our careers page.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK