Tech Stack
AssemblyDockerElasticSearchJenkinsKubernetesMicroservicesNGINXPHPPostgresRedisSDLCSQLSymfony
About the role
- Designing, developing, testing, documenting, releasing and supporting software from scratch
- Enhancing and refining our existing API and backend systems
- Integrating third-party solutions to broaden our payment ecosystem (acquirer, gateway, alternative payment methods, token platforms, systems for verification/scoring/monitoring of customer operations, reporting, etc.)
- Running tests to make sure everything works as it should and setting up a testing environment for checking new features
- Fixing existing bugs and debugging the developed software
- Preparing necessary technical documentation
- Provide support for the implemented software in production
- Collaborating with the front-end developers and other team members to complete all of the above tasks in the most efficient way
- Improving our products and solving problems; excellent troubleshooting skills, curiosity for innovations and unconventional solutions
Requirements
- Understanding object-oriented programming and its application in PHP
- Knowledge of security threats and security measures in PHP, including protection against SQL injections, XSS attacks, CSRF
- Experience writing and executing tests, including unit tests, integration tests, and failure tests
- Good knowledge of syntax, language structure, data types, operators
- Deep understanding of OOP
- Proficient use of core Symfony
- Practical experience with Doctrine ORM
- Experience with PHPUnit
- Proficient in data manipulations (basic CRUD operations) using SQL, Postgresql
- Understanding of basic Docker, Kubernetes
- Understanding of the basic concepts and benefits of Continuous Integration (CI) and Continuous Deployment/Delivery (CD) processes
- Theoretical SOLID, GoF design patterns, GRASP knowledge
- Hands-on experience with Domain-Driven Design in designing and developing complex PHP applications (must-have)
- Understanding the basic principles of CQRS
- Understanding of the concept of integration tests and how they differ from other types of testing, such as unit testing and functional testing
- Understanding of the basic concepts of Event Sourcing, including events, aggregates, projections and event streams
- Understanding of basic microservices concepts, such as dividing functionality into small, independent services and communicating between them via APIs
- Understanding of the basic functionality of Jenkins, the quality of software assembly, testing and deployment
- Good knowledge of traditional monolithic architectures and Microservices Architecture, as well as Hexagonal Architecture's emphasis on separation of concerns
- Full SDLC cycle
- Strong understanding and practice of Agile Development Methodology and its SCRUM and KANBAN frameworks
- Bonus points for: Experience with Elasticsearch, Redis
- Bonus points for: Experience with Gitlab CI/CD
- Bonus points for: Understanding of or working experience with Event Sourcing
- Bonus points for: Experience with nginx, shell
- Bonus points for: OpenAPI (swagger-php)
- Bonus points for: UML,TDD
- Bonus points for: Agile/Scrum experience