Dundill Full Stack Platform
NestJS + GraphQL APIs and a React front end organised in Clean Architecture layers, with a Paymaster payment integration and unit and E2E tests.
- Frameworks & drivers
- Interface adapters
- Use cases
- Entities
01 · Context
Full-time product work at Dundill in 2024, after a 2023 internship on the same team.
02 · Challenge
Ship features, payments included, in a growing codebase without letting framework code leak into business rules.
03 · Architecture
- NestJS + GraphQL back end and React front end.
- Clean Architecture layers: entities → use cases → interface adapters → frameworks and drivers.
- Payment provider (Paymaster) isolated behind an adapter.
04 · Key decisions
Use cases independent of the framework
Business rules don’t import NestJS or the database, which keeps them testable and easy to change.
Payments behind an adapter
The payment flow depends on an interface, not on the provider’s SDK.
Faster data access
NoSQL queries reworked through query shapes, indexing and document structure.
A real test pyramid
Jest unit tests on the core, Cypress end-to-end tests on the critical journeys.
05 · Result
A secure payment flow, faster data access and a tested codebase, while mentoring the team’s interns. The code belongs to the company and stays confidential.