Indian SaaS and B2B products
Appsmith Backend Engineer Interview: Rounds, Questions and Preparation
For Backend Engineer roles at companies like Appsmith
What the job involves
Backend engineers in Indian SaaS and B2B product companies build and maintain the server-side systems that power multi-tenant web applications. They design APIs, manage databases, handle authentication and permissions, and ensure performance and reliability for business customers. Day to day involves writing code, reviewing pull requests, debugging production issues, and collaborating with frontend and product teams.
Role and Technical Knowledge
- 1
How would you design a REST API for a multi-tenant SaaS application where each customer's data must be isolated?
A strong answer covers tenant identification (e.g., via subdomain or JWT claim), database schema choices (shared schema with tenant_id vs separate schemas), and enforcing isolation at the query and authorization layers.
- 2
Explain the difference between authentication and authorization in the context of a B2B product with roles like admin, editor, and viewer.
Authentication verifies identity (e.g., login with JWT), while authorization determines what actions a user can perform. For B2B, mention role-based access control (RBAC) and how permissions are checked on each API endpoint.
- 3
What are the trade-offs between using SQL and NoSQL databases for a B2B SaaS product that stores customer configurations and audit logs?
Discuss relational integrity, complex queries, and transactions for configurations, versus flexible schema and write scalability for logs. A good answer suggests a hybrid approach or justifies one based on access patterns.
- 4
How do you handle database migrations in a production SaaS environment with zero downtime?
Cover backward-compatible changes, using tools like Flyway or Alembic, running migrations in phases (add column, backfill, switch code, remove old column), and testing on staging before production.
Practical Scenarios
- 5
A customer reports that their API requests are intermittently slow. How would you debug and resolve this?
Start by checking logs and metrics for patterns (time of day, specific endpoints), then look at database query performance, external service calls, and resource utilization. Suggest adding caching, optimizing queries, or scaling horizontally.
- 6
You need to add a new feature that sends email notifications when a user is mentioned in a comment. How would you implement this without blocking the main request?
Use a message queue (e.g., RabbitMQ, SQS) to decouple email sending from the API request. The API publishes an event, and a worker consumes it to send the email. Mention retry logic and dead-letter queues.
- 7
How would you implement rate limiting for a public API to prevent abuse while ensuring fair usage for paying customers?
Describe token bucket or sliding window algorithms, storing counters in Redis, and applying different limits per plan (e.g., free vs enterprise). Also mention returning 429 status and headers like X-RateLimit-Remaining.
- 8
A bug causes duplicate records in the database. How do you fix the immediate issue and prevent it from happening again?
Immediate fix: identify and remove duplicates with a script, then add a unique constraint or idempotency key. Prevention: add database constraints, write tests for edge cases, and review code for race conditions.
Problem Solving and Coding
- 9
Given a list of API request logs, write a function to find the top 3 endpoints with the highest average response time.
Focus on clear data structures (hash map to aggregate sum and count per endpoint), then sort by average. Discuss time complexity and edge cases like empty logs.
- 10
How would you detect and handle a cycle in a dependency graph of microservices?
Use depth-first search (DFS) with a recursion stack or topological sort. Explain that cycles indicate circular dependencies and suggest breaking them by refactoring or introducing an async event.
- 11
Write a SQL query to find all users who have not logged in for the past 30 days but belong to a paid plan.
Use a LEFT JOIN or NOT EXISTS with a subquery on login activity, filter by plan type and last_login date. Mention indexing on last_login and plan columns for performance.
- 12
Implement a simple in-memory cache with a time-to-live (TTL) for API responses.
Use a dictionary with timestamps or a priority queue for expiration. Discuss thread safety and eviction policies like LRU. Keep the implementation simple but correct.
Behavioural and HR
- 13
Tell me about a time you had to learn a new technology quickly for a project. How did you approach it?
Use the STAR method: describe the situation, the technology, your learning steps (docs, tutorials, small prototypes), and the outcome. Emphasize curiosity and self-driven learning.
- 14
Describe a situation where you disagreed with a teammate's technical approach. How did you handle it?
Show that you listen, discuss trade-offs with data, and prioritize the team's goal over being right. Mention a positive resolution or compromise, and what you learned.
- 15
Why do you want to work in a B2B SaaS company like ours, and how do you handle feedback?
Connect your interest to building products that solve real business problems, and mention specific aspects of the company (e.g., open-source, developer tools). For feedback, give an example of acting on it to improve.
- 16
Where do you see yourself in 3 years, and what are your expectations from this role?
Align your growth with the company's needs: deepening backend expertise, taking ownership of features, and contributing to system design. Avoid unrealistic titles; focus on skills and impact.
Coding round
Backend 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 Backend Engineer roles, written with AI. It is not a list of questions Appsmith or any other company has asked.