Full-stack software engineer with 10+ years of experience, specializing in backend development for web and mobile applications. Proficient in JavaScript, TypeScript, Ruby, and Java, with strong expertise in TDD, OOP, DDD, CQRS, and Clean Architecture. Experienced with React, Docker, Terraform, AWS, and various databases (SQL, NoSQL, wide-column).
I’ve worked in both small and large companies, contributing to Agile teams (1–10 members) delivering scalable MVPs and products. Committed to clean, testable code following Beck’s Design Rules (tests, revel intention, no duplication, fewer elements). Open-minded and driven by new challenges.
An e-commerce platform for natural wines featuring an AI-powered wine scan functionality. This comprehensive project included Stripe payment integration, order processing, multiple React frontends, image processing via an integrated AI Python service, and Shopify integrations. The platform was built as a modular monolith with highly separated, well-tested modules designed in DDD event-sourced aggregates. I was involved in all phases of the project—initial setup, development, and delivery—working both independently and as part of a team of around 10 people.
I joined Revolut as a Senior Node.js Engineer and soon transitioned to working with Java. I was part of the POS (Point of Sale) team, developing a subproduct tailored for restaurants, covering modules such as orders, payments, reporting, product, and table management. I gained hands-on experience with event-driven architecture and a microservices ecosystem running on Google Cloud Platform, handling high traffic and large-scale data using PostgreSQL and MongoDB.
At Droids, I worked on multiple projects using Ruby on Rails, Node.js, Nest.js, React, and other technologies. I focused on building maintainable apps following TDD, the modular-monolith architecture and DDD approach with event sourced models. I set up infrastructure on AWS using Elastic Beanstalk with Docker, DocumentDB, S3, OpenSearch, SQS, and Terraform, with CI/CD. I collaborated directly with clients and participated in discovery workshops using Event Storming and Domain Storytelling to define MVPs and project scope.
My first role was as a Ruby on Rails developer, contributing to both backend development and frontend implementation using JavaScript and CoffeeScript. Working at a software house, I was involved in multiple projects and collaborated directly with a diverse range of clients.