Salesforce SMTS Frontend Interview Experience
Summary
I applied for the Senior Member of Technical Staff (Frontend) role at Salesforce through their career site. After successfully navigating through six rigorous interview rounds, which covered technical skills, system design, and cultural fit, I received an offer for the position.
Full Experience
I applied for the Senior Member of Technical Staff (Frontend) role through the Salesforce career site. My application was acknowledged, and I received a recruiter call after about 3-4 days.
Round 1: Online HackerRank Assessment (60 minutes)
This round required me to solve two coding questions to proceed. I encountered a graph-based problem and a dynamic programming problem focused on strings, which I completed.
Round 2: Hiring Manager Round (45 minutes)
This round covered a mix of topics. We discussed my current work experience, including my tech stack and cultural fit. We also delved into frontend performance, specifically: what FPS is, why it's important, and which CSS properties to avoid animating, favoring transform and opacity for better performance. A system design problem was presented: to design the "Send message" functionality on Slack, including user tagging, UI component design, and communication protocols. Finally, we discussed Canvas and its performance benefits.
Round 3: JS, HTML, CSS and React Fundamentals (60 minutes)
This was a comprehensive frontend fundamentals round. I was asked about semantic HTML and its benefits, the differences between Flexbox and Grid, and how to implement responsive layouts using media queries and relative sizes. In JavaScript, I explained call, apply, and bind, and was asked to write a polyfill for bind. Other JS topics included the Critical Rendering Path, CSSOM, and the Event Loop. For React, the questions covered forwardRef and useImperativeHandle, designing a data model for a chat application, understanding and fixing props drilling, and the benefits of Client Side Rendering. The round concluded with questions on web performance, such as different resource hinting techniques and how to improve INP.
Round 4: System Design - Google Maps (60 minutes)
The challenge was to design maps.google.com. This was a highly interactive discussion, not about finding a single right answer. We explored various aspects like Canvas vs. DOM rendering, tile-based rendering, Level of Detail (LOD) based on zoom, and techniques like debouncing/throttling for gestures. We also touched upon state management, caching strategies, and the design of various APIs such as Tile, Geocoding, Directions, Places, and real-time data APIs. User interactions, web workers for heavy computations, responsive design, keyboard navigation, screen reader support, and error tracking were also part of the discussion. The interviewer was very helpful and guided me when I got stuck.
Round 5: System Design - WhatsApp Web (60 minutes)
I was asked to design web.whatsapp.com. Having studied this problem before, I felt confident and the discussion flowed well with the lead engineer. We explored some new scenarios presented by the interviewer, and I was able to propose viable approaches.
Round 6: Culture Fit and Collaboration (60 minutes)
This final round focused on behavioral aspects. I discussed how I handle conflicts, specifically conflicts with a QA team. I also shared an experience where I pushed a bug to production, detailing the RCA process, adding E2E tests, and other mitigation steps taken. Another question involved a scenario where I had to work with a difficult colleague and how I managed the situation. There were a few more general cultural questions as well.
I am delighted to share that I received an offer for the Senior Member of Technical Staff (Frontend) role!
Interview Questions (22)
Discuss Current Work Experience
Discuss your current work experience, tech stack, and cultural fit.
Frontend Performance: FPS & CSS Animations
What is FPS (Frames Per Second) and why is it important? What types of CSS properties should we avoid animating, and why are transform and opacity generally preferred for performant animations?
System Design: Slack 'Send Message' Functionality
Design a "Send message" functionality on Slack. Consider features like tagging people in messages, UI component design, and communication protocols to be used.
Canvas vs. DOM for Performance
What is Canvas and why is it better for performance compared to traditional DOM rendering?
Semantic HTML
What is semantic HTML? Why should we follow semantic HTML instead of using only divs?
CSS Layout: Flexbox vs. Grid
Explain the difference between Flexbox and Grid. Implement a layout using CSS Grid.
Responsive Web Design Techniques
How do you make your application responsive? Discuss techniques like media queries, relative sizes, etc.
JavaScript: call, apply, bind & Polyfill
What are call, apply, and bind in JavaScript? Explain their differences. Write a polyfill for the bind method.
Critical Rendering Path & CSSOM
What is the Critical Rendering Path? Explain the CSSOM (CSS Object Model).
JavaScript Event Loop
How does the JavaScript Event Loop work?
React: forwardRef & useImperativeHandle
What does the forwardRef hook do? What do you know about the useImperativeHandle hook in React?
Data Model for Chat Application
How will you implement the data model for a chat application?
React: Props Drilling & Solutions
What is props drilling in React and how can you fix it?
Client Side Rendering
What is Client Side Rendering (CSR)? When is it beneficial to use CSR?
Resource Hinting Techniques
What are different resource hinting techniques in web performance?
Improving INP (Interaction to Next Paint)
How would you improve the INP (Interaction to Next Paint) web vital?
System Design: Google Maps
Design maps.google.com. Consider aspects like Canvas vs DOM rendering, tile-based rendering, Level of Detail (LOD) based on zoom, debouncing/throttling for gestures, state management, caching strategy, APIs (Tile, Geocoding, Directions, Places, Real-time data), user interactions (gesture handling, event delegation, touch optimization), web workers, responsive design, keyboard navigation, screen reader support, and error tracking.
System Design: WhatsApp Web
Design web.whatsapp.com, including consideration for various scenarios and features.
Conflict Resolution
How do you handle conflicts?
Conflict with QA Team
How will you handle conflicts specifically with the QA team?
Bug in Production Experience
Tell me about a scenario where you pushed a bug to production that caused an issue. What steps did you take, including creating an RCA (Root Cause Analysis), adding E2E tests, and other mitigation steps?
Difficult Colleague Experience
Tell me about a scenario when working with someone was very difficult and how you handled it.