Twilio | L2 | India | March 2022 [Offer]

twilio logo
twilio
SDE Ibangalore1.5 yearsOffer
April 28, 20223 reads

Summary

I successfully received an offer for an L2 position at Twilio in Bangalore, completing a comprehensive interview process that spanned over a month and included a Hackerrank round, multiple onsite technical, system design, and behavioral interviews.

Full Experience

I applied for an L2 position at Twilio in Bangalore through LinkedIn, and a recruiter reached out to me shortly after. My background includes a B.Tech degree from a Tier 3 college and approximately 1.5 years of experience at a product-based SaaS company. The entire interview process took around 1 to 1.5 months due to interviewers being in different time zones, leading to weekly or bi-weekly scheduling.

Hackerrank Coding Round (1.5 hours)

This was a remote round where a dedicated machine was provided for all tasks. Although I can't share specific details due to an NDA, I can generalize the types of problems encountered:

  1. One task involved creating and hosting a web server for an application. I was given the desired output and had the flexibility to use any tools, with Nginx/Apache suggested for the web server and NodeJS/Python for the application. It was a simple application, focusing on testing my knowledge and applicable tools.
  2. Another task required performing some mathematical operations using an Infrastructure as Code (IaC) tool.
  3. Both solutions had to be executable with a single command, producing sequential output in the terminal, suggesting the use of a bash function or custom script.
  4. There was also a coding question of easy-to-medium difficulty, related to string manipulation and regular expressions.

The recruiter followed up with positive feedback, and my onsite rounds were scheduled for the subsequent weeks.

Onsite Interviews (each round 45-60 minutes)

Round 1 (Senior Engineering Manager - Screening)

This round began with an introduction to my current team and work. The questions were primarily focused on my current role, responsibilities, and some specific to Twilio's magic values. We discussed what DevOps is and its importance, as well as the backend tools and frameworks I've utilized. There were several "tell me about a time" behavioral questions related to my work, leadership, and responsibility. I also had questions about my learning techniques and patterns, such as how I would approach learning a new technology or framework within a given timeframe.

Round 2 (Senior Engineering Manager - Design)

After an introduction, I was asked to pick a major project from my experience and discuss its High-Level Design (HLD) and Low-Level Design (LLD). I explained it diagrammatically, detailing each component and data flow. We covered the problem my project solved, its scale, the challenges I faced, and how I overcame them. I also had to justify the choice of tools, languages, and frameworks, discussing potential alternatives and the impact created by the project.

Round 3 (Senior Product Manager - Bar Raiser)

I hadn't specifically prepared for bar raiser questions, but fortunately, they were all relatable to my current work. The interviewer gave a brief introduction before diving straight into "tell me about a time" scenarios:

  • ...when I had a feature request from a customer and how I implemented it differently from the expected flow.
  • ...when I had to coordinate with multiple teams to complete a task on time and push it to production.
  • ...when I took initiative and brought impact to my team, detailing the results.
  • ...when I experienced a failure in delivering a task or an issue in production after deployment.
  • ...if given a new product team, how I would scale, improve, and set processes to level up the team.
  • I also discussed my most recent manager review and how I improved based on the feedback.
  • Finally, I talked about a large-scale project I worked on, including its challenges, impact, problem statement, and effects.

Round 4 (Engineering Manager - Hiring Manager)

This round started with very descriptive and lengthy introductions from both sides. The hiring manager explained his team and my potential responsibilities, as well as the expectations for the role. We delved into the steps and processes involved in starting a new product within a company, requiring an end-to-end detailed flow covering product building, market knowledge, POC, internal implementation, beta launch, and public release. Although the interviewer asked for a high-level overview, he delved deeply into each topic. We also discussed a time I worked on a large-scale project and how we brought it to completion, my journey into tech, what motivates me, and all the technical things I've worked on, including personal projects. Lastly, I was asked about how I learn any new technical topic from scratch.

Round 5 (Senior Developer - Coding/Low-Level Design)

After introductions, we moved to a design question focusing on backend infrastructure: how would I design a backend for a website application to handle concurrent user requests and scale effectively? The key requirements were no performance degradation, zero downtime during deploys and upgrades, fault tolerance, rollback support, and CI/CD integration. I gathered that the interviewer was looking for a microservices architecture leveraging Kubernetes and Docker. Beyond this main design problem, I was also asked about various Docker instructions in a Dockerfile, how to tag a Docker image using automation (looking for specific tools and logic), the complete flow of a request from an application connecting to internal servers (including components like ALB/ELB, Route53 DNS, Redis, Firewall, Nginx, proxies, CDN), and strategies for deploying a new application version to production without downtime. Finally, I had to explain how to automate building new Docker image versions and applying them to the respective applications.

Round 6 (HR Round)

This was the final round where the verdict and interview feedback were shared. We then proceeded to salary negotiation and compensation breakdown discussions.

Overall, the process was thorough and well-structured, culminating in an offer from Twilio.

Interview Questions (5)

Q1
Create and Host a Web Server
Other

Create a web server for an application and host it. Provided desired output in the question which should be achieved at the end. You can use any tools to complete the task. For web server Nginx, Apache is a known tool which can be used. To create an application one can use nodeJS/Python. Simple application, not any full fledged app expected. Idea here was to test the knowledge and tools which will be applicable.

Q2
Scalable Website Backend Design
System DesignHard

Given an website application, how would you design the backend infrastructure such that it can handle concurrent requests from users and how will you scale it? Performance should not be degraded, no downtime should be observed during deploys and upgrade. Fault tolerance, rollback support and CI/CD support are also required. The interviewer was looking for a microservices architecture using k8s and docker I suppose.

Q3
End-to-End Request Flow in a Web Application
System DesignMedium

What is the complete flow of a request when an application connects to internal servers? What components come into place and how is it served? I had to describe the complete flowchart, including expected components like ALB/ELB, Route53 DNS, Redis, Firewall, web server (Nginx), proxies, reverse proxy, CDN, etc. and combine them to complete the flow.

Q4
Zero-Downtime Application Deployment
OtherMedium

How will you deploy a new application version to production without any downtime and issues at user ends?

Q5
Automate Docker Image Building and Application
OtherMedium

How would you automate building new versions of a Docker image and applying them to the respective application which uses it?

Discussion (0)

Share your thoughts and ask questions

Join the Discussion

Sign in with Google to share your thoughts and ask questions

No comments yet

Be the first to share your thoughts and start the discussion!