Hello folks,
I recently interviewed at Salesforce for the Software Engineer, Member of Technical Staff (MTS) role. This role is more inclined towards the frontend domain & I will share my interview experience in this post.
How did I get to know about this opportunity?
A technical recruiter contacted me over the mail regarding a Frontend / UI developer opportunity at Salesforce. Since I was actively looking for new opportunities, I shared my interest in exploring this opportunity.
Interview Rounds
In total, there were 4 rounds (initial phone screen + 3 technical rounds).
Initial Phone Screen
Machine Coding Round
System Design Round
Hiring Manager Round
Initial Phone Screen
After confirming my interest in this opportunity, the recruiter called me to gauge my current experience, contributions at my current organisation, roles & responsibilities.
The recruiter enquired about my familiarity with data structures & algorithms. Post this initial screening the 3 technical rounds were scheduled.
Machine Coding Round
Duration: 60 minutes
The interviewer put me at ease by asking about my frontend experience and background. I was asked to share my opinion on a specific UI framework or library and the reasons behind it.
This round was based on a frontend problem statement to be solved using Vanilla Javascript. Here the focus was to implement the features mentioned in the given problem statement without using any external library or framework. It was conducted on HackerRank's codepair platform.
Best practices of writing clean, modular & extensible code were expected in the solution. The interviewer extended the problem statement to include incremental features on top of it.
I approached the problem statement by breaking it down into separate components & identifying the data flow between them. I followed a class-based approach to represent each component to enhance the modularity & scalability of the code. Practising machine coding questions in vanilla JavaScript helped me to excel in this round.
You can check out my practice problems done by me for machine coding rounds here: Vanilla JS Practice
I have attached all the references followed by me at the end of this blog.
System Design Round
Duration: 60 minutes
This round did not involve the entire implementation of the given problem statement. I was supposed to understand the problem statement & come up with a feasible solution using vanilla javascript. I followed the below strategy to tackle this problem
Gather all functional & non-functional requirements to define the problem scope
Define API contracts & data model
Design component APIs to achieve desired functionalities
State management & data flow
Scalability & optimisations including rendering, caching & pagination-based APIs.
I was asked to write the class API for different components focusing on modularity & reusability. Discussed the trade-offs between different caching strategies & handling aggregate data in paginated APIs. A few behavioural questions about handling team conflicts & pressure situations were also asked.
Hiring Manager Round
Duration: 60 minutes
This round was taken by the hiring manager of the team that I will be joining. It went smoothly & I thoroughly enjoyed the conversation in this round. Behavioural questions regarding managing team conflicts and handling differences of opinions were asked. I discussed one of the most challenging tasks which I've worked on at my current org. Discussion about driving new initiatives with coworkers & building a UI community at Salesforce. I enquired more about the project which I'll be working on. Asked how the global team collaborates across different timezones, team structure, expectations from a new joiner, etc.
I had prepared a set of questions for this round which helped in making the final decision.
Conclusion
A week after finishing the interviews, the recruiter informed me that I had cleared all the rounds & I was selected for the MTS role ๐. I was ecstatic to receive the news of my selection and accepted the offer letter.
I was preparing for frontend interviews for the past few months, especially machine coding & system design questions. This preparation helped me to clear the interviews with ease.
DSA was also a part of my prep strategy. Hence, I would suggest preparing for DSA questions as well since the interviews depend on the team for which you're being hired.
Thank you, guys, for reading up till here, I hope you enjoyed and learnt something new! You can connect with me on X, LinkedIn & GitHub.
Happy Coding! โ๏ธ