Abhay Pratap Singh — Senior Backend Engineer & Team Lead, India
Senior Backend Engineer & Team Lead
I design and build scalable SaaS platforms and AI-powered backend systems.
What I Specialize In
Core expertise areas across backend engineering and AI systems
Multi-Tenant SaaS Architecture
Designing tenant-isolated platforms with RBAC and subscription enforcement
AI-Powered Backend Systems
LLM pipelines, vector search, and intelligent analytics engines
High-Scale PostgreSQL Systems
Query optimization, pgvector, 20M+ record processing
Complex API Integration Platforms
Orchestrating 20+ third-party APIs with retry logic and ERP sync
About Me
I'm Abhay Pratap Singh — a Senior Backend Engineer and Team Lead based in India with 5+ years of experience building production SaaS platforms and AI-powered systems.
At Voyantt Consultancy Services, I lead cross-functional overseas teams and own the full backend lifecycle — from architecture decisions and sprint planning to code reviews and developer mentoring.
I've shipped multi-tenant financial platforms, AI analytics engines processing 20M+ records, and ERP-integrated e-commerce systems serving multiple countries. My core stack is PHP, Laravel, Node.js, and NestJS, and I'm particularly focused on LLM integration, vector search, and scalable backend architecture.
Featured Projects
Production systems I've architected and built — each solving complex backend challenges at scale
Tech Stack
Technologies and tools I use to build production systems
Languages & Frameworks
Databases
AI & Search
Caching & Queues
Architecture
DevOps
Integrations & APIs
Email & Marketing
Project Management
Experience
Tech Lead
Voyantt Consultancy Services LLP
India
- Leading architecture and technical direction for Multi-Tenant Business Management SaaS serving 200+ organizations
- Architected row-level PostgreSQL tenant isolation with RBAC and subscription-based feature gating
- Designed 30+ modular NestJS domains with domain-driven design and service-repository pattern
- Driving engineering standards, code review culture, and sprint planning across cross-functional teams
- Owning stakeholder collaboration with overseas product teams for roadmap and delivery alignment
Senior Software Developer
Voyantt Consultancy Services LLP
India
- Architected the AI Call Intelligence Platform processing 20M+ call records
- Built LLM-to-SQL pipeline with GPT-4o Mini and pgvector semantic search
- Engineered Redis caching strategy achieving ~60% latency improvement
- Implemented prompt injection prevention and query sandboxing for AI features
- Reduced API p95 latency by 35% through query optimization and caching
Software Developer
Voyantt Consultancy Services LLP
India
- Developed Multi-Vendor Healthcare E-Commerce Platform spanning US and Canada in 7 languages
- Built multi-vendor catalog system with vendor-specific pricing, inventory, and order routing
- Orchestrated 20+ third-party API integrations including Acumatica ERP with retry logic and circuit breakers
- Implemented dual pricing computation engine supporting Hourly and OPEX billing models
- Integrated Stripe and Ebiz payment gateways with subscription and one-time purchase flows
B.Tech in Mechanical Engineering
Dr. A.P.J. Abdul Kalam Technical University
2015 – 2019
Latest Technical Writing
Deep dives into backend architecture, AI systems, and engineering decisions
Code Samples
Sanitized engineering patterns from real production systems
Multi-Tenant Middleware
NestJS middleware: JWT claim extraction → AsyncLocalStorage → Prisma auto-filtering
@Injectable()
export class TenantMiddleware implements NestMiddleware {
use(req: Request, _res: Response, next: NextFunction) {
const user = req['user'];
if (!user?.tenantId) {
throw new UnauthorizedException('Missing tenant context');
}
const context: TenantContext = {
tenantId: user.tenantId,
userId: user.sub,
role: user.role,
};
// Run request inside tenant-scoped AsyncLocalStorage
tenantStorage.run(context, () => next());
}
}
// Prisma middleware — auto-applies tenant filtering
export function tenantPrismaMiddleware() {
return async (params, next) => {
const context = tenantStorage.getStore();
if (!context) return next(params);
if (params.action === 'create') {
params.args.data.tenantId = context.tenantId;
}
if (['findMany', 'findFirst', 'count'].includes(params.action)) {
params.args.where = { ...params.args.where, tenantId: context.tenantId };
}
return next(params);
};
}Let's Build Something Together
Whether you're a recruiter, engineering leader, or fellow developer — I'd love to hear from you.