Gregory Foss is a Senior at the University of Connecticut studying Computer Science & Engineering. Gregory was recently a Software Engineering intern at Facebook. Here is a glimpse of how this internship helped Gregory enhance his professional development:
Victoria Kuryan: What was the interview process like?
Gregory Foss: There was one phone interview with a single coding technical question, followed by a one-way video interview with several different technical questions. There was also time for me to ask any questions about the internship.
VK: What was the most meaningful aspect of your experience?
GF: I enjoyed being surrounded by engineers who were masters of their craft and very passionate about what they do. I learned far more from all the engineers there in just three months than I have learned from engaging in programming on my own for the past 10 years.
VK: What were some of the projects you worked on?
GF: I really can’t say a lot because of the NDA (Non-Disclosure Agreement), but I mostly worked on the WhatsApp backend server code. Some of the specific tasks I was involved with included involving the global configuration servers, referencing groups of servers at once, and automated application testing of some of the servers. WhatsApp’s backend is composed of several different types of servers spread throughout Facebook’s data centers around the world. I added code to the fleet that references groups of these servers so we can more efficiently reference many of these servers at once. Groups of servers need to be referenced like this for incrementally updating the fleet of servers, so my code is in use almost every day. The second half of my internship was spent adding automated, application-specific testing to WhatsApp’s global configuration manager. The configuration manager is a list of switches and configurable values that all the servers use for real-time settings. The automated testing I worked on will help to future-proof the system as any failures could be catastrophic. I also worked on a configuration revert system that will allow the values of the configuration to be reverted in the event that they are set wrong.
VK: What advice would you have for an intern coming into a similar role?
GF: I would recommend that you try to ask as many questions as you can. Don’t be afraid to speak up in meetings. Don’t feel like you don’t deserve to be there. Don’t be afraid to get help from anyone (everyone is always willing to help). Don’t just focus on work the entire time, try to go to as many Facebook-sponsored intern events as you can. Make new friends with the other interns. You are all in the same boat and are all feeling the same things, so they can be good to talk to in order to make yourself realize that you are not alone. Take advantage of all the perks while you’re there: try every on-campus restaurant, use all of your wellness stipend, try out all the gyms, take advantage of the micro kitchens frequently, etc. If you are not happy, talk to someone about it!
VK: What were some of the skills you developed during your experience?
GF: Some of the skills I developed during my internship experience included fluency in Erlang (which is a programming language), knowledge of consumer backend server architecture, experience in distributed programming, experience in parallel programming, and experience using a functional language for a real-world application.
VK: What are your plans for after graduation?
GF: I was lucky enough to receive a return offer for next year, so I will be starting at the Seattle office this coming August. In the meantime, I plan on being a counselor at a camp I went to as a kid called Deerfoot Lodge.
If you’d like to find out more information about Gregory and his experiences, feel free to check out his Hello, World blog!