Indian SaaS and B2B products
Freshchat Software Engineer Interview: Rounds, Questions and Preparation
For Software Engineer roles at companies like Freshchat
What the job involves
A Software Engineer at an Indian SaaS or B2B product company like Freshchat builds and maintains features for multi-tenant cloud applications used by businesses for customer engagement, support, and sales. Day to day, you write code, review pull requests, debug production issues, and collaborate with product and QA teams to ship reliable, scalable software. Freshers typically start with well-scoped tasks and gradually take ownership of modules.
Role and Technical Knowledge
- 1
What is multi-tenancy in a SaaS product like Freshchat, and how would you design a database schema to support it?
Explain that multi-tenancy means serving multiple customers from a single instance, and discuss options like shared schema with tenant ID, separate schemas, or separate databases, mentioning trade-offs in isolation, cost, and complexity.
- 2
How would you design a REST API for a chat feature that supports sending and retrieving messages?
Cover endpoints like POST /messages and GET /conversations/{id}/messages, use of HTTP methods and status codes, pagination, authentication, and considerations for real-time updates via WebSockets or polling.
- 3
Explain the difference between SQL and NoSQL databases. Which would you choose for storing chat messages and why?
Compare scalability, consistency, and query flexibility. For chat, NoSQL like Cassandra or MongoDB is often chosen for high write throughput and flexible schema, but acknowledge that SQL can work with proper sharding.
- 4
What are the key considerations for ensuring data security and privacy in a B2B SaaS product?
Mention encryption at rest and in transit, role-based access control, audit logs, compliance like GDPR or SOC2, and tenant isolation. Show awareness that B2B customers demand strict SLAs.
Practical Scenarios
- 5
A customer reports that their chat widget is not loading on their website. How would you debug this issue?
Outline a systematic approach: check browser console for errors, verify network requests, inspect server logs, reproduce the issue, and consider tenant-specific configurations or recent deployments.
- 6
You need to add a new feature to an existing module. How do you ensure your code does not break existing functionality?
Discuss writing unit and integration tests, using feature flags, performing code reviews, and running regression tests. Mention the importance of understanding the existing codebase and dependencies.
- 7
How would you handle a situation where a production bug affects only a small percentage of users?
Talk about identifying the pattern (e.g., specific tenant, browser, or region), using logging and monitoring tools, rolling out a fix gradually, and communicating with affected customers and internal teams.
- 8
Describe how you would optimize a slow database query in a high-traffic SaaS application.
Cover analyzing query execution plans, adding indexes, denormalizing if needed, caching results, and considering read replicas or partitioning. Emphasize measuring before and after.
Behavioural and HR
- 9
Why do you want to work in a product-based SaaS company like Freshchat rather than a services company?
Show enthusiasm for building products used by many businesses, continuous learning, ownership, and the fast-paced environment. Avoid saying services companies are bad; focus on your preference for product development.
- 10
Tell me about a time you worked in a team to complete a project. What was your role?
Use the STAR method: describe the situation, task, your actions, and the result. Highlight collaboration, communication, and your specific contribution.
- 11
How do you handle feedback or criticism on your code?
Emphasize that you view feedback as a learning opportunity, you ask questions to understand, and you iterate. Give an example of incorporating feedback to improve code quality.
- 12
Where do you see yourself in three years?
Align your growth with the company's needs: deepening technical expertise, taking ownership of features, and possibly mentoring juniors. Show commitment to learning and contributing.
Problem Solving and Coding
- 13
Given a log of user events with timestamps, find the longest session duration for a user. How would you approach this?
Clarify session definition, then outline sorting by user and timestamp, iterating to compute gaps, and tracking maximum. Discuss time and space complexity.
- 14
Write a function to check if a string is a palindrome, ignoring spaces and punctuation.
Use two pointers after normalizing the string. Discuss edge cases like empty string and case sensitivity. Mention time complexity O(n).
- 15
How would you find the first non-repeating character in a string?
Use a hash map to count frequencies, then iterate to find the first with count 1. Discuss O(n) time and O(1) space for fixed alphabet.
- 16
Explain how you would reverse a linked list iteratively and recursively.
For iterative, use three pointers (prev, curr, next). For recursive, define base case and recurse. Mention trade-offs in space complexity.
Coding round
Software Engineer interviews usually include a coding round. Practise planning the solution out loud, then review code the AI writes from your plan, in Python, Java, C++, C or JavaScript.
Ready to try it for real?
Take a timed test or talk through a mock interview for this role, then see your scores.
This is practice material for Software Engineer roles, written with AI. It is not a list of questions Freshchat or any other company has asked.