
🪂 Object-Oriented Programming Best Practices
Apply good OOP practices in your code to make it more maintainable.
Developer
Apply good OOP practices in your code to make it more maintainable.
Learn how Wallapop manages projections in its systems.
Learn to simplify your projections using Apache Kafka.
Learn practically how to model your Aggregates in a scalable, maintainable, and testable way.
Apply Clean Code to your code to make it more maintainable, scalable, and testable.
Learn to model the errors that occur in your application in a maintainable way.
Learn how and where to add transactions in your application to make it more maintainable.
Caches are a workaround, but a workaround in the right place improves the performance and maintainability of your application.
Use views and materialized views to scale your application.
Master Projections in software design to make your applications more maintainable, scalable, and testable.
Use the Criteria Design Pattern to adhere to SOLID principles in your use cases and repositories.
Delve into the main issues when publishing and consuming domain events.
Master Domain Events in software design and make your applications more maintainable, scalable, and testable.
Master Aggregates in software design and make your applications more maintainable, scalable, and testable.
The Repository pattern is one of the easiest to understand, but also one of the easiest to implement incorrectly. In the course, we see how to avoid this.
The Value Object pattern is one of the most well-known, but also one of the most hated. In the course, we see how to make the most of it and how to facilitate its use to turn that hate into love.
Learn the implications at the SOLID level and maintenance of Behavioral Design Patterns.
Learn the implications at the SOLID level and maintenance of Creational Design Patterns.
Learn to detect and deal with code that generates resistance to change. A course focused on Code Smells of the Change Preventers type.
Learn to detect and deal with incomprehensible code 🤟
Learn to use the Swiss Army Knife of programmers 😬
Learn to automate, centralize, and share all your configurations thanks to dotfiles.
Boost your productivity by maximizing IntelliJ! Achieve a minimalist look, create files with custom templates, secret shortcuts, and much more.
Achieve being a Productivity Raptor™ with your terminal thanks to Zsh, Oh My Zsh, Zim, and advanced functions.
Step by step create your Java application following Domain-Driven Design. Folder structure, integration with DB, queue system, CQRS and more.
Learn to work in a team with Git and make the most of advanced aspects such as debugging, merge strategies, and much more.
Learn what testing brings, how to test, and best practices to prevent maintaining your tests from becoming a nightmare with examples from The Real World™
Learn to model your applications focusing on your domain, define Bounded Contexts, aggregates, value objects, and much more. All in a practical way with code examples.
If you already know how to develop software but want to take a step further and improve the quality of your code, this is your course
Publish and consume domain events, eventual consistency, RabbitMQ and AWS SNS-SQS, migration from monolith to services, and much more.
Learn what Docker is and how to make the most of containers. Starting from the beginning, we will see how to use Docker to run your application locally as if it were in production, starting a database with Docker Compose.
Domain-Driven Design relies on Hexagonal Architecture as one of its technical pillars. Learn how to implement it with CodelyTV!
Learn the basics of Amazon Web Services to deploy your application in the cloud. Create your own VPC, choose the right EC2 instance, configure SSH, select your base AMI, define Security Groups, deploy, and configure Route53 as DNS!
Increase the performance and decoupling of your backend through CQRS. We will explore concepts and implementations of synchronous and asynchronous buses.
Learn how to migrate data from legacy code to an event-driven architecture.
Learn Test-Driven Development (TDD) and the different ways and styles to apply it in Real World™️ applications