My summer engineering internship at Quip
In the beginning, I wasn’t fully aware of all the things that searching for an internship involved (having a personal website, reaching out to companies, networking at on-campus events, prepping for behavioural and technical interviews and even negotiating offers). I was interested in joining small-size companies (no more than 2k employees) and thus focused on contacting popular startups and unicorn companies. During this process, I came across Quip. I really didn’t know much about the company but after checking out the company’s website and having some friends explain to me how they used the product I grew more interested.
Everything started with the interview process...
My first contact with someone at the company was rather extraordinary. I emailed Quip's Head of Recruiting to ask about potential opportunities and to my surprise, he responded to my email the next day to start the interview process. The interview process was above-average in terms of difficulty. It consisted of one phone technical interview and one onsite interview (2 technical interviews + lunch + behavioural interview with an Engineering Manager). During the entire process, I was gladly surprised by Quip’s culture and the great interactions that I had with all the people involved.
Why did I choose Quip?
One week after the onsite interview, I received the offer. As soon as I read the header, I thought “You got it!!!”. To help me solve some of my concerns about the company, the recruiter arranged 2 informational chats (this time I was definitely more relaxed and was able to discuss some concerns I had about the company): one with the Head of Recruiting and one with the Head of Engineering.
Normally, I keep the following things in mind when looking for a work experience:
- Does this company offer the opportunity for me to improve my skillset while making meaningful contributions?
- Am I comfortable with the company culture and people that I will work with? After all, I want to work in an environment where I am comfortable asking questions and discussing ideas.
- Do I truly believe in the company's mission and is the product helping its users solve real problems?
After considering all of the offers on the table and envisioning my internship at each company, I decided to accept Quip's offer. It was not an easy decision but Quip met most of my criteria. I signed the offer letter and my internship hunt was over.
A particularity to note about Quip is its relationship with Salesforce. Salesforce acquired Quip a few years ago, but Quip retained lots of independence, allowing to maintain thhe startup-ish culture
The Quip Engineering Team
At Quip, the engineering resources are assigned to projects rather than tech-specific areas. The project teams are relatively small (<10). In addition to the engineers, a Product Manager (PMs), Designer, and Engineering Manager are assigned to the team and depending on the project a member of the business operations team, sales team and/or customer success team will work closely with them.
Quip uses a methodology called Roadmap Planning to outline the work to be completed in the next phase the project. Roadmaps generally last 2 months. This allows the Quip project teams to ship quality features quickly and regularly.
I think the best part of this methodology (small project team + planning projects in two month intervals), is it allows the teams to adapt quickly. Additionally, it provides engineers the opportunity to explore and work on multiple projects and technologies as movement between teams is flexible.
My team: The Money Team
The Money Team’s mission is to work closely with Business Operations (BizOps) to tackle projects that have
a high impact and drive revenue for Quip. The Money Team was considerably small: Apart from me, there was Kevin (my mentor and the Tech Lead), Claire (a New Grad engineer) and Sophia (a former engineer turned PM). We also collaborated with Yunjie and Drew (Product Designers), Rena (Customer Success Manager), Tag (Copy and Content), and many others.
I was surprised that there were just 3 engineers on the team. However, this became one of the best opportunities I’ve had because I was truly part of the team and not just an intern. I joined the weekly planning meetings, participated in daily stand-ups, brainstormed during the bug-bash sessions, and completed countless pair-programming sessions. I definitely have to thank my mentor Kevin for always ensuring that I was having a great experience and that I felt ownership of my work. It was awesome to work day-to-day with such great people.
How is the mentorship at Quip?
One of the great aspects of Quip’s culture is mentorship. The goal of the mentorship program is to set up new engineers for success (I know a bit cliche, but it truly does). Every new engineer is assigned a mentor, which allows for a personalized onboarding experience for the new hire. On average, the program last two months. Although the mentorship program was created for new full-time hires, it was modified to provide support to the interns.
One of the biggest differences is that the mentor is paired with the intern for the duration of the internship. Before I was paired with a mentor, I had a conversation with Daniel (the engineer that managed the internship program). We discussed my background, experience, and interests. Daniel used this information to pair me with my mentor and subsequently my project team. A few days before starting my internship I met (via hangouts) with my mentor. We discussed potential projects and he provided me with several references to read up on. In addition to my mentor, I was assigned a manager whose goal was to enhance and enable career and personal growth opportunities. My mentor provided specific technical feedback and my manager provided more holistic feedback.
Since day one at Quip, some of the most helpful resources were (1) the “On-boarding Curriculum.”, which was curated by Kevin and contained multiple materials (Quip docs, code samples, links to official documentation, etc. ). The curriculum was organized by priority and relevance to my project and changed dynamically to cater specific tasks I was working. (2) 1:1 document with my mentor where we recorded the summary of our 1:1s sessions as well as becoming my personal task tracker and planner.
What I got to work on?
During the first weeks, my routine was a mix of advancing in my curriculum, attending onboarding sessions and working on small tasks that my mentor prepared to get me used to the code submission process. Around the 3rd week, we revisited a project called the Quip Admin Console, which became my main project.
The goal of the Admin Console project was to completely revamp the existing Quip Business Portal while maintaining the existing functionalities but radically improving the whole User Experience (or should I say Admin Experience). Normally, customers have administrative needs (ergo the Admin Console) thus the experience of the site admins can influence a company's decision to procure and use Quip. Revamping the Business Portal was business critical not only because a better experience increases customers' happiness and fondness but also a better system would reduce the influx of customers request to resolve administrator issues.
SLDS + React: Remember how I mentioned Quip is a Salesforce Company? Well, turns out that Salesforce provides its own open source design system known as Salesforce Lightning Design System (SLDS) to build the Admin Console of its other products. SLDS encompasses design principles as well as reusable components in the form of static assets. The decision was made to use SLDS for the Admin Console to offer a familiar experience for Quip admins that use Salesforce's Admin Portal. React was chosen as the primary language for the view layer, which was already used in many parts of the Quip codebase enabling reusability.
Usability and Maintainability: Another goal of the project was to establish solid foundations for the new Admin Console, with the mindset that new functionalities will be added in the future and existing ones can adapt to customers’ feedback. To accomplish this goal, the Money team worked cross-functionally with other teams at Quip to ensure a broad range of perspectives and customer needs were considered in the decision-making.
Most of my work was done using React since the front-end on the Admin Console was basically reconstructed from scratch but I also had to take care of creating the appropriate handlers on the server-side (which was written in Python). I observed the project go from planning design and ideation to implementation, testing, bug-fixing and even launch to some customers. With the support of my mentor, I was able to work on one of the most crucial parts of a business critical project. To name a few, I touched these components: Members, Folders, and Billing
But wait I also had some fun
Remember how I explained the Salesforce-Quip relationship? Well as a Quip intern this meant that I got to participate in Salesforce internship events such as a ferry trip along the Golden Gate Bridge, a trip to the beach in Santa Clara, and my favorite Food Truck mania.
As much as I enjoyed the Salesforce events, I probably preferred the smaller Quip events such as:
- All Hands (1x/week): This was a all-company meeting where teams shared current and future projects to the rest of the company, celebrated wins, discussed concerns, and engaged in dialogue with Quip execs.
- Company-wide outings: I participated in two of these during my internship. I attended the Annual Quip Summer Camp where the team spent the day having fun at a cabin in Presidio (a nice neighbourhood in SF wich tons of green spaces). I participated in the company Ideathon- Quiprupt (first time ever held) where the company discussed multiple areas that were critical for engineering success and growth, identify current issues/problems and proposed ideas to tackle them.
- Quip Intern Events: The internship program managers were sure to plan some memorable outings such as the Exploratorium night tour and the intern-farewall dinner.
Obviously, I can't recommend the Quip team enough. If you're interested in full-time employment, or an internship, check out their careers page. If you're interested in a software engineering internship learn more here.
If you want to get started with Quip today, head to quip.com for your free trial.