I'm a Backend Developer from Dhaka, Bangladesh, focused on building scalable, secure, and reliable server-side systems. I enjoy designing clean APIs, modeling databases that hold up under real traffic, and turning complex business logic into maintainable code.
- πΌ Backend Developer at Softvence Agency, building production-grade REST APIs and modular services with NestJS, Prisma, and PostgreSQL
- βοΈ I design RESTful APIs, microservices, and event-driven systems with clear boundaries and consistent contracts
- ποΈ I care about database design and performance: relational schemas, indexing, and query optimization
- π I build authentication and authorization with JWT, OAuth 2.0, RBAC, OTP, and session management
- π¨ I work with Kafka, WebSockets, Socket.IO, and gRPC for messaging and real-time features
- π§ͺ I value reliability: input validation, centralized error handling, structured logging, and automated tests
- π³ I ship with Docker, GitHub Actions, CI/CD pipelines, Linux, and AWS
- π€ I contribute to open source, currently to the NestJS framework
- π± Currently studying Computer Science & Technology and exploring AI-integrated backend features
- π« Reach me at ridoy.babu.781@gmail.com
| Project | Contribution | PR | Status |
|---|---|---|---|
Fixed route-level Multer options overwriting global upload limits across all 5 file-upload interceptors |
#17818 | ||
Added integration & E2E tests for the HTTP QUERY method (RFC 10008) lifecycle on Express and Fastify |
#17798 |
NestJS Β· #17818 β fix(platform-express): merge global and route-level Multer limits
Fixed a bug where MulterModule.register() (global) options and per-route FileInterceptor(...) (local) options were merged with a flat object spread, so a route overriding one limit silently lost every other global limit.
- Added a shared
mergeMulterOptions()helper that mergeslimitskey-by-key, so a local override only replaces the keys it sets - Handled function-valued
limits(multer β₯ 2.4.0): if either side is a function, the local value wins, preserving prior behavior - Replaced the duplicated
{ ...options, ...localOptions }spread in all 5 interceptors (FileInterceptor,FilesInterceptor,FileFieldsInterceptor,AnyFilesInterceptor,NoFilesInterceptor) - Widened the
MulterOptions.limitstype to accept the function form - Added unit tests for the helper plus a
.limitsassertion in each interceptor spec - Documented the behavior change and an opt-out (
limits: { files: undefined }) for maintainers - Results: 77 platform-express tests passing,
tsc --noEmitclean
NestJS Β· #17798 β test(testing): add e2e tests for HTTP QUERY method lifecycle
Audited NestJS's support for the HTTP QUERY method (RFC 10008) and added test coverage proving that @QueryMethod() works through the full request lifecycle.
- Added a
@QueryMethod(':id')route combining@Param(),@Query()with a pipe,@Body(), guards, and interceptors - Added a
rejectroute to verify exception filters work withQUERY - Added matching E2E coverage for both
@nestjs/platform-expressand@nestjs/platform-fastify - Verified
@Query()(URL query string) and@QueryMethod()(HTTP method) work together without ambiguity - Fixed the Express E2E
httpRequest()helper so it preserves query strings such as?tenant=acme - Results: 10/10 new tests, 808 integration tests, and 1971 package tests passing, with no breaking or public API changes
Languages
Backend & APIs
Databases & ORMs
Messaging & Real-time
DevOps & Cloud
Testing & Tools
Frontend (when needed)

