Fintech product
ABOUT THE COMPANY AND THE PROJECT
We are a fintech company developing a platform for processing payments, payouts, and currency exchange.
The architectural core of the platform is already ready: a modular structure has been designed, conventions have been defined, and several basic modules have been implemented. However, the main part of the product is still ahead — we need to design and build new modules on the existing foundation: financial operations, partner programs, integrations with external providers, and others.
The architecture is based on the principles of DDD, CQRS, and event-driven interaction. There are clear patterns, reference modules, and documentation — you won’t have to invent approaches from scratch, but there will be an opportunity to influence architectural decisions at an early stage of the product.
WHAT YOU WILL BE DOING
Designing and implementing new modules according to established patterns, refining existing ones
Implementing domain logic: aggregates, Value Objects, state machines, domain events
Writing commands, queries, and their handlers (CQRS)
Implementing event handlers for cascading business processes between modules
Adding read models and View objects for queries
Working with cross-context integrations through ports and adapters
Developing REST API endpoints
Writing unit tests for domain logic and integration tests for handlers
Participating in code reviews
TECHNOLOGY STACK
Language PHP 8.x
Framework Symfony
Architecture DDD, CQRS, Event-Driven, Hexagonal (Ports & Adapters)
Data handling with Doctrine ORM + DBAL PostgreSQL database
Queues RabbitMQ Caching Redis
Security Symfony Security (Voters, Authenticators)
REQUIREMENTS
Mandatory
3+ years of commercial experience in PHP (Symfony preferred)
Understanding of DDD principles: aggregates, Value Objects, repositories, domain events
Experience with CQRS or willingness to learn quickly
Ability to work according to established architectural patterns and conventions
Experience with Doctrine ORM and/or DBAL
Experience with PostgreSQL
Skills in writing unit tests
Proficient in Git
Will be a plus
Experience in FinTech / payment systems
Practical experience with DDD in a production project
Experience with RBAC and API key authentication
Ability to influence architecture and product decisions at an early stage
Interesting domain area with non-trivial business logic
After completing the first task, there is an opportunity to join the development team.