Indian SaaS and B2B products
Kaleyra Communications Software Engineer Interview: Rounds, Questions and Preparation
For Software Engineer roles at companies like Kaleyra Communications
What the job involves
A software engineer at an Indian SaaS or B2B product company builds and maintains the backend services, APIs, and integrations that power business communication platforms. Day to day work includes writing code, debugging production issues, writing tests, and collaborating with product and support teams to ship features for enterprise customers. You will often work on multi-tenant systems, third-party API integrations, and data pipelines that handle high volumes of messages or transactions.
Role and technical knowledge
- 1
What is the difference between a REST API and a webhook, and where would you use each in a B2B communication platform?
Explain that REST is pull based and webhooks are push based. Give examples like using REST to send a message and webhooks to receive delivery status updates from telecom operators.
- 2
How would you design a database schema for storing messages sent to customers, including status and timestamps?
Cover tables for messages, recipients, and status history. Mention indexes on message ID and status, and how to handle high write volume with partitioning or sharding.
- 3
Explain the concept of multi tenancy in a SaaS product and how it affects your code.
Describe isolating customer data using tenant IDs, and how every query must filter by tenant. Mention row level security or separate schemas as options.
- 4
What are idempotent APIs and why are they important when integrating with third party services like SMS gateways?
Define idempotency as repeating the same request without changing the result. Explain using idempotency keys to avoid duplicate messages when retries happen due to network failures.
Practical scenarios
- 5
A customer reports that their messages are sometimes delayed by several minutes. How would you debug this?
Start by checking logs and metrics for queue depth, API response times, and third party status. Suggest tracing a specific message ID through the pipeline and checking for retries or rate limiting.
- 6
You need to integrate a new telecom operator API that has a rate limit of 100 requests per second. How would you design your service to handle this?
Mention using a queue to buffer requests, a rate limiter, and exponential backoff with retries. Also discuss monitoring for failures and alerting.
- 7
Your team wants to add a feature to send scheduled messages. What technical considerations would you raise?
Talk about storing scheduled jobs, using a scheduler like cron or a job queue, handling time zones, and ensuring messages are not sent twice if the system restarts.
- 8
How would you write a unit test for a function that calls an external SMS API?
Explain mocking the external API call, testing success and failure responses, and verifying that the function handles timeouts and errors correctly.
Behavioural and HR
- 9
Why do you want to work in a SaaS or B2B product company rather than a service based IT company?
Show interest in building products that are used by many businesses, learning about scalability, and working closely with product teams. Mention wanting to see the impact of your code on real users.
- 10
Tell me about a time you had to learn a new technology quickly for a project or hackathon.
Use a specific example, describe the steps you took to learn, and highlight the outcome. Show curiosity and ability to self learn.
- 11
Describe a situation where you disagreed with a teammate on a technical approach. How did you handle it?
Focus on listening, presenting data or trade offs, and reaching a consensus. Avoid blaming others and show willingness to compromise.
- 12
Where do you see yourself in three years in a product engineering role?
Talk about deepening technical skills, taking ownership of modules, and contributing to design discussions. Align your goals with the company's growth in the SaaS space.
Coding and problem solving
- 13
Given a list of message delivery statuses, write a function to find the first message that failed after a successful send.
Clarify input format, then iterate through the list keeping track of state. Discuss time and space complexity and edge cases like empty list.
- 14
How would you find the top 5 customers by number of messages sent in the last 24 hours from a log table?
Write a SQL query using GROUP BY, COUNT, and ORDER BY with LIMIT. Mention filtering by timestamp and handling ties.
- 15
Implement a function to merge two sorted lists of message timestamps into one sorted list.
Use two pointers and compare elements. Explain the O(n+m) time complexity and handle duplicates if asked.
- 16
Write a function to validate an Indian mobile number before sending an SMS.
Check for 10 digits starting with 6 to 9, optionally with country code +91. Mention using regex and returning a boolean or error message.
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 Kaleyra Communications or any other company has asked.