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 your current work experience, tech stack, and cultural fit.
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?
Design a "Send message" functionality on Slack. Consider features like tagging people in messages, UI component design, and communication protocols to be used.
What is Canvas and why is it better for performance compared to traditional DOM rendering?
What is semantic HTML? Why should we follow semantic HTML instead of using only divs?
Explain the difference between Flexbox and Grid. Implement a layout using CSS Grid.
How do you make your application responsive? Discuss techniques like media queries, relative sizes, etc.
What are call, apply, and bind in JavaScript? Explain their differences. Write a polyfill for the bind method.
What is the Critical Rendering Path? Explain the CSSOM (CSS Object Model).
How does the JavaScript Event Loop work?
What does the forwardRef hook do? What do you know about the useImperativeHandle hook in React?
How will you implement the data model for a chat application?
What is props drilling in React and how can you fix it?
What is Client Side Rendering (CSR)? When is it beneficial to use CSR?
What are different resource hinting techniques in web performance?
How would you improve the INP (Interaction to Next Paint) web vital?
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.
Design web.whatsapp.com, including consideration for various scenarios and features.
How do you handle conflicts?
How will you handle conflicts specifically with the QA team?
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?
Tell me about a scenario when working with someone was very difficult and how you handled it.