Each year, Quantcast hosts dozens of interns around the world. Many of these internships are part of the intern’s undergraduate degrees. Finding the right company to intern with can be daunting and challenging for many. In this post, Andrei Margeloiu, a former intern in our San Francisco office, shares his experience as an intern with Quantcast’s product and platform engineering teams.
Since I was in high school I’ve been fascinated by the tech ecosystem and wanted to work in the center of it all in San Francisco. Like many things which we dream of, it became a reality.
While interning at Quantcast, I was fortunate to try both product engineering and platform engineering. There are many exciting things to be learnt from both sides of the spectrum. From being a platform engineer, I learned about the infinite ecosystem of tools, how to build systems, the importance of open-source, and that hard work pays off. From being a product engineer, I learned the importance of speed, dealing with the unknown, and how crucial it is to embark on customer discovery before building software.
Understanding how a company operates
The significant advantage of interning with a medium-size company is the opportunity to observe how everything operates. You not only get an understanding of the dynamics within a department, but between departments as well. To me, this was an enlightening experience, as I aspire to create a technology company one day.
As an intern, I aimed to comprehend the interactions between departments. Living in the engineering bubble, I thought that engineering was the epicentre of the company and all departments are complementary (a.k.a less useful). In about a month, I started to understand the importance of other departments, such as sales, finance, HR, operations and IT. You can’t build software without them. Consider the legal department – your system will process data, and you must know what data you are allowed to process. Alternatively, consider the sales department: like it or not, it funds the engineering team’s payroll.
Furthermore, I observed the dynamics within the engineering department overall. I was curious about what drives people at each level within the engineering team and I saw three patterns emerge:
- Seniority is directly correlated with the ambiguity you can handle. Usually, the more you deal with business problems, the less binary the solution is. In this way, experienced engineers are asked to solve a business problem through the use of technology.
- Experienced engineers ask “why” until they get to the root problem they want to solve.
- Senior leaders communicate with clarity. By listening to what managers are saying, you will quickly notice that when they speak, they walk you with clarity through their thoughts.
Talking to people is enlightening
Being young, you will have many open questions about humans, life, and the world in general. I believe it’s essential to expand your understanding by asking for advice from more experienced people. I did this several times, and every conversation introduced new concepts to me – such as defining the problem space, understanding people’s motivations and comprehending that I have nothing to lose by trying something new at this age. It’s much faster to get tried and true advice from others rather than finding all the answers on your own.
The fear of rejection is what can stop you from asking people to speak with you. So, how do you ask for advice? It’s simple, just go and ask. Ideally, ask in person, and be frank. The person that you want to get to know them, learn about what they do and hear what they have to say. Be curious to talk to them.
When you get the chance to talk to someone, respect their time. The worst thing you can do is going unprepared into a conversation. Make it clear what you’d like the topic of the conversation to be and think beforehand about what you want to discuss, or what you would like them to give you answers about. It’s okay if the meeting is only for exploring new concepts, such as their work.
Be open to advice
Some of the eye-opening advice I received by talking to people around the company included:
- It’s important to choose the problem space in which you want to work. I was wondering why some engineers solve deeply technical problems, while others only build classic systems. The advice I received was that it all boils down to the problem space you are placing yourself into. If you want to develop cutting-edge software, then you should change your problem space to include problems that require deep technical expertise.
Don’t make the mistake of over-complicating the solution of a problem.
- Understand the business context of the systems you want to build. This will allow you to make the right technical tradeoffs. For example, if you work in the medical industry, you must build entirely consistent databases. However, in the advertising space, you can sacrifice database consistency for the speed of execution.
My two internships at Quantcast offered me an excellent introduction to engineering and an understanding of how a company works. Here’s the advice I’d offer to anyone looking for an engineering internship.
First, talk to people. The advantage of working in a mid-size company is that you get to meet everyone and have access to people you wouldn’t if the company were much larger. So ask for advice from more experienced people inside the company because they will give you tried and true recipes for future success.
Second, listen, observe and look for patterns. In the beginning, everything will be new to you, so you must adapt to all of the information coming to you and try to extract meaning out of it. Look for patterns in technologies and especially in human behaviour.
Finally, make some good memories.