Backend Software Engineer
Designing backend systems, APIs, and data workflows with clean architecture and domain-driven design.
- Languages: TypeScript, Javascript, Python, Java.
- Frameworks & Protocols: NestJS, Express, Apollo GraphQL, REST.
- Databases & Queues: PostgreSQL, Redis, BullMQ, TypeORM, Prisma.
- Tooling & Infrastructure: Docker, Docker Compose, Linux, Git, Jest.
- Domain-Driven Design: Keeping core business logic isolated from frameworks, databases, and external delivery mechanisms.
- Clean Architecture: Structuring systems into decoupled, testable layers with strict dependency flow.
- Event-Driven Architecture: Using asynchronous queues and event streams (Redis, BullMQ) to separate background jobs from request-response cycles.
- Testing: Verifying system behavior through comprehensive unit, integration, and contract tests before shipping to production.
- KISS (Keep It Simple): Designing with the minimum architectural complexity required to solve the actual technical problem.
- YAGNI (You Aren't Gonna Need It): Resisting speculative abstractions, premature patterns, and unneeded infrastructure layers.
- DRY (Don't Repeat Yourself): Ensuring single sources of truth for business logic without sacrificing module decoupling.
- Open Source: Prioritizing open standards, standard libraries, and community-driven tooling.


