Available courses

Learn from experienced professionals in practical, straightforward courses.
Improve your skills, specialize, and continue advancing your career.
Subscribe
New!
Data Migration: From Legacy to Event-Driven Architecture

📥 Data Migration: From Legacy to Event-Driven Architecture

Javier FerrerRafa Gómez

Learn how to migrate data from legacy code to an event-driven architecture.

New!
Hemav Audit

🗺️ Hemav Audit

Javier FerrerRafa Gómez

Audit session where we review the Software Design and Architecture of Hemav.

Early Access!
Spark: Best Practices and Deployment

☄️ Spark: Best Practices and Deployment

Javier FerrerChristian Herrera

Learn how to take Spark to production by following best practices in deployment.

Early Access!
Spark: Integration with Kafka, Rabbit, and SQS

🐇 Spark: Integration with Kafka, Rabbit, and SQS

Javier FerrerChristian Herrera

Learn to integrate Spark with queue systems (Kafka, RabbitMQ, and AWS SQS).

Early Access!
Spark for Developers

Spark for Developers

Javier FerrerChristian Herrera

Learn to go from data to decisions using Apache Spark.

AI: Search Engine with Custom Data Using RAG

🕵️ AI: Search Engine with Custom Data Using RAG

Javier FerrerRafa Gómez

Learn and apply RAG to perform semantic searches in your database.

Practical Case: Aggregates and Read Model in DDD

📑 Practical Case: Aggregates and Read Model in DDD

Javier FerrerRafa Gómez

Learn practically how to model your Aggregates in a scalable, maintainable, and testable way.

Clean Code

🧽 Clean Code

Javier FerrerRafa Gómez

Apply Clean Code to your code to make it more maintainable, scalable, and testable.

Domain Modeling: Exceptions vs Errors

💥 Domain Modeling: Exceptions vs Errors

Javier FerrerRafa Gómez

Learn to model the errors that occur in your application in a maintainable way.

Infrastructure Design: Transactions

🤝 Infrastructure Design: Transactions

Javier FerrerRafa Gómez

Learn how and where to add transactions in your application to make it more maintainable.

Infrastructure Design: Cache

💾 Infrastructure Design: Cache

Javier FerrerRafa Gómez

Caches are a workaround, but a workaround in the right place improves the performance and maintainability of your application.

Infrastructure Design: Views

👁️ Infrastructure Design: Views

Javier FerrerRafa Gómez

Use views and materialized views to scale your application.

Add Artificial Intelligence Following Best Practices

🦙 Add Artificial Intelligence Following Best Practices

Javier FerrerRafa Gómez

Add AI to your website following software best practices.

Domain Modeling: Projections

📽️ Domain Modeling: Projections

Javier FerrerRafa Gómez

Master Projections in software design to make your applications more maintainable, scalable, and testable.

Infrastructure Design: AWS SQS as a Messaging Queue

🏗️ Infrastructure Design: AWS SQS as a Messaging Queue

Javier FerrerRafa Gómez

Add scalability to your application using AWS SQS with an optimal queue design.

Design Patterns: Criteria

🎼 Design Patterns: Criteria

Javier FerrerRafa Gómez

Use the Criteria Design Pattern to adhere to SOLID principles in your use cases and repositories.

Infrastructure Design: RabbitMQ as a Messaging Queue

🐰 Infrastructure Design: RabbitMQ as a Messaging Queue

Javier FerrerRafa Gómez

Add scalability to your application using RabbitMQ with an optimal queue design.

Infrastructure Design: Inheritance Mapping in PHP

🪖 Infrastructure Design: Inheritance Mapping in PHP

Javier FerrerRafa Gómez

Inheritance can be good. In this course, we see how to take that concept to the database.

Next.js: Open Graph Images

🖼️ Next.js: Open Graph Images

Javier FerrerRafa Gómez

Generate dynamic images in your Next.js projects for sharing on social media.

Issues with DDD: Error Handling in Domain Events

🌩️ Issues with DDD: Error Handling in Domain Events

Javier FerrerRafa Gómez

Delve into the main issues when publishing and consuming domain events.

Linting in PHP

🏮 Linting in PHP

Javier FerrerRafa Gómez

Add a coding standard to your PHP project or create a new one by extending PSR and PER standards.

Domain Modeling: Domain Events

🐉 Domain Modeling: Domain Events

Javier FerrerRafa Gómez

Master Domain Events in software design and make your applications more maintainable, scalable, and testable.

Static Code Analysis in PHP

🔍 Static Code Analysis in PHP

Javier FerrerRafa Gómez

PHP is not a compiled language, but with static code analysis, we can reap its benefits.

Domain Modeling: Aggregates

🫚 Domain Modeling: Aggregates

Javier FerrerRafa Gómez

Master Aggregates in software design and make your applications more maintainable, scalable, and testable.

Best Practices with CSS: Colors

🎨 Best Practices with CSS: Colors

Núria SorianoRafa Gómez

Master the use of colors in CSS to create visually stunning and accessible sites. Use modern CSS such as lch for color management.

Advanced TypeScript: Improve Your Developer eXperience

🚋 Advanced TypeScript: Improve Your Developer eXperience

Isma NavarroJavier Ferrer

Learn how to enhance the definition of your functions with utility types, const type parameters, and satisfies that will allow you to gain robustness and ease of use in your day-to-day tasks.

Grafana

🍉 Grafana

Joan López de la FrancaRafa Gómez

Learn to visualize and analyze historical and/or real-time data, create interactive dashboards, and configure your custom alerts.

Domain Modeling: Repositories

🗃️ Domain Modeling: Repositories

Javier FerrerRafa Gómez

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.

Create your library in React: Carousel

🎠 Create your library in React: Carousel

Núria SorianoJavier Ferrer

Learn how to develop your own JavaScript library for React by joining us in the creation of the Carousel for our website while following best practices.

Solving Type Challenges

🏎️ Solving Type Challenges

Isma NavarroRonny Ancorini

Diving deeper into TypeScript through advanced challenges.

Domain Modeling: Value Objects

🧲 Domain Modeling: Value Objects

Javier FerrerRafa Gómez

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.

Asynchrony in JavaScript

Asynchrony in JavaScript

Isma NavarroNúria Soriano

Master asynchrony in JavaScript: understand and efficiently apply concepts such as callbacks, promises, async/await, and other asynchrony methods in your projects.

Visual Studio Code: Productivity and Setup

🛠️ Visual Studio Code: Productivity and Setup

Rafa GómezJavier Ferrer

Boost your productivity by making the most of Visual Studio Code. From a minimalist appearance to mastering all its hidden shortcuts.

DDD, Microservices and Infrastructure in Audiense, Genially and Codely

🧿 DDD, Microservices and Infrastructure in Audiense, Genially and Codely

AudienseGeniallyCodely

Sessions where we talk about DDD, Microservices, and Infrastructure in Audiense, Genially, and Codely.

Live Web Portfolio from Scratch: Next.js vs Gatsby

💼 Live Web Portfolio from Scratch: Next.js vs Gatsby

Javier FerrerIsma NavarroNúria Soriano

A series of live sessions comparing the creation of a web portfolio using Next.js and Gatsby, both deployed on different platforms, allowing you to learn and compare the technologies.

Hexagonal Architecture in Frontend

🧇 Hexagonal Architecture in Frontend

Rafa GómezNúria Soriano

Learn how to implement Hexagonal Architecture in your frontend applications

Web Audit: Ryanair

✈️ Web Audit: Ryanair

Javier FerrerNúria Soriano

We analyze the performance, accessibility, and UX of the Ryanair website live

Terraform: Best Practices for Managing Your Infrastructure as Code

🪐 Terraform: Best Practices for Managing Your Infrastructure as Code

Javier FerrerAdrián CatalánEsteve Oria

When working with cloud infrastructure, you must prepare to make any changes without any risk. In this course, we explain how to version and automate all of your application's infrastructure.

Best Practices with CSS: Selectors

🥢 Best Practices with CSS: Selectors

María BarriosRafa Gómez

Learn to apply best practices to your CSS selectors by understanding the fundamentals well.

Data Processing in Bash: Manage JSON, XML, YAML Files

🎲 Data Processing in Bash: Manage JSON, XML, YAML Files

Javier FerrerRafa Gómez

Bash is the most famous scripting language there is. Learn to leverage its full potential to manage our JSONs, YAMLs…

Holaluz Audit

🌞 Holaluz Audit

Javier FerrerRafa Gómez

Audit session in which the design and software architecture of a part of Holaluz's systems is reviewed.

React from 0 applying best practices

🎛️ React from 0 applying best practices

Isma NavarroJavier Ferrer

Get introduced to React from scratch by creating your personal developer dashboard where you can check the metrics of your favorite repositories.

HTTP API in Kotlin Applying Hexagonal Architecture

💎 HTTP API in Kotlin Applying Hexagonal Architecture

Isa GarridoRafa Gómez

Learn to develop your first HTTP API in Kotlin applying some of the fundamentals of Hexagonal Architecture.

DDD in TypeScript: Communication Between Services and Applications

🛰 DDD in TypeScript: Communication Between Services and Applications

Fernando VilasRubén SaladoDani Santamaria

Communicate services and applications using Domain-Driven Design (DDD) and TypeScript, enabling software and teams to scale progressively.

Linting in JavaScript and TypeScript

🔦 Linting in JavaScript and TypeScript

Núria SorianoRafa Gómez

Learn to make the most of ESLint to take your code to the next level.

Develop Figma Plugins with TypeScript

🪆 Develop Figma Plugins with TypeScript

Carmen AnsioJavier Ferrer

Take a step further and develop maintainable, scalable, and testable plugins for Figma with TypeScript. Design and development go hand in hand.

Behavioral Design Patterns

🐝 Behavioral Design Patterns

Dani SantamariaRafa Gómez

Learn the implications at the SOLID level and maintenance of Behavioral Design Patterns.

Advanced TypeScript: Beyond any

🚜 Advanced TypeScript: Beyond any

Isma NavarroJavier Ferrer

In this course, we will lay the foundations of advanced TypeScript with the aim of establishing the basic knowledge for future courses where we will delve deeper into other aspects of this development tool.

Structuring the Codely Website from Scratch

🍍 Structuring the Codely Website from Scratch

Núria SorianoRafa Gómez

We will take a design from Figma to a production website, with a scalable design system while considering performance, SEO, and accessibility.

Log Management with Loki and Grafana

🏵️ Log Management with Loki and Grafana

Joan López de la FrancaRafa Gómez

Learn how to manage your logs with Grafana and Loki, best practices, and how it differs from the ELK stack

Interviews about eXtreme Programming

🎤 Interviews about eXtreme Programming

Nino Dafonte

Additional content for the eXtreme Programming course

TDD: Test-Driven Development

♻️ TDD: Test-Driven Development

Dani SantamariaJavier Ferrer

Learn Test-Driven Development (TDD) and the different ways and styles to apply it in Real World™️ applications

Setup macOS for Programming

Setup macOS for Programming

Nino DafonteRafa Gómez

Set up your Mac computer just like Nino and Rafa do to program as comfortably as possible.

Lightning Talks

Lightning Talks

Núria Soriano

10-20 minute talks on various topics. So far, they were internal to the Codely team, but… if they add value to us, they might to you too

eXtreme Programming

🧑‍🔬 eXtreme Programming

Nino DafonteDani Santamaria

Discover the practices of eXtreme Programming and its application in the Real World™

Introduction to Kotlin: Your First App

🐈 Introduction to Kotlin: Your First App

Isa GarridoRafa Gómez

Develop your first console command with Kotlin while learning what makes this language so powerful.

Audits and Support

🐷 Audits and Support

Javier FerrerRafa Gómez

Audit session in which the design and software architecture of part of your systems are reviewed, along with Support where we help you improve your learning.

DDD in TypeScript: Modeling and Architecture

🔷 DDD in TypeScript: Modeling and Architecture

Fernando VilasRubén SaladoJavier Ferrer

Step by step create your TypeScript application following Domain-Driven Design.

State Management in React

🍥 State Management in React

Isma NavarroJavier FerrerRicardo Borillo

Learn about the different tools you can use to manage state in your React application.

Web Performance

🌪️ Web Performance

Nino DafonteNúria Soriano

Learn how to optimize your web applications and create a performance culture to maintain it in the long term.

Design Patterns: Creational

🏭 Design Patterns: Creational

Dani SantamariaJavier Ferrer

Learn the implications at the SOLID level and maintenance of Creational Design Patterns.

Mastering CSS Flex

🤸 Mastering CSS Flex

Isma NavarroRafa Gómez

Learn how to fully leverage CSS Flex to create adaptable layouts easily.

From JavaScript to TypeScript

⬆️ From JavaScript to TypeScript

Isma NavarroRafa GómezNúria Soriano

Learn TypeScript starting from a JavaScript example where we will gradually refactor the code while analyzing the main features of TypeScript.

Maintainable and Scalable Symfony

🎶 Maintainable and Scalable Symfony

Dani SantamariaJavier Ferrer

Learn tools and practices with Symfony to achieve greater maintainability and scalability of your applications.

Deep Dive into CSS Grid

🍱 Deep Dive into CSS Grid

Núria SorianoRafa GómezIsma Navarro

Learn how to take advantage of CSS Grid to create flexible layouts without the need for frameworks.

Exclusive CodelyTV Pro Live Streams

🎥 Exclusive CodelyTV Pro Live Streams

Javier FerrerRafa GómezIsma NavarroDani SantamariaNino DafonteNúria Soriano

Exclusive live streams addressing questions, holding debates, and preparing upcoming courses based on your feedback

Setting Up Linux for Programming

🐧 Setting Up Linux for Programming

Dani SantamariaRafa Gómez

Set up your computer with Linux just like Dani has it for the most comfortable programming experience possible.

Refactoring Code Smells to Clean Code: Change Preventers

🧹 Refactoring Code Smells to Clean Code: Change Preventers

Javier FerrerRafa GómezDani Santamaria

Learn to detect and deal with code that generates resistance to change. A course focused on Code Smells of the Change Preventers type.

Modern JavaScript

🐥 Modern JavaScript

Núria SorianoJavier FerrerIsma Navarro

Learn best practices to start vanilla JavaScript applications from scratch and refactor legacy code to support older browsers.

Accessible Light & Dark Themes

🌚🌝 Accessible Light & Dark Themes

Núria SorianoRafa Gómez

Learn how to implement accessible light and dark themes on a web page, how to integrate it into your CSS architecture, and how to adapt the designs to create stunning themes.

HTTP API in Go Applying Hexagonal Architecture

HTTP API in Go Applying Hexagonal Architecture

Adrián PérezJoan López de la FrancaJavier Ferrer

Learn how to develop your first HTTP API in Go by applying some of the fundamentals of Hexagonal Architecture.

Testing in Frontend

🐙 Testing in Frontend

Núria SorianoJavier Ferrer

Learn how to test your frontend applications by applying best practices to achieve maintainable tests that provide confidence.

Karabiner: Keyboard Shortcuts for Everything

🎱 Karabiner: Keyboard Shortcuts for Everything

Rafa Gómez

Automate everything on your Mac with keyboard shortcuts and improve your productivity!

CSS Architecture

🗼 CSS Architecture

Núria SorianoRafa Gómez

Learn the fundamentals of good CSS architecture so your styles are easy to maintain and scale.

PHP 8: News and Examples for the Real World™

🐘8️⃣ PHP 8: News and Examples for the Real World™

Rafa GómezJavier Ferrer

Migrate your applications to PHP 8 step by step, achieve more maintainable tests thanks to Named Arguments, simpler Value Objects with Constructor Property Promotion, replace PECL (deprecated), and much more.

Vue 3: New Features Applied to the Real World

✌️ Vue 3: New Features Applied to the Real World

Núria SorianoJavier Ferrer

We will see how to leverage the new features of Vue 3 with real examples and applying best practices.

Best Practices with CSS: Layouts

📐 Best Practices with CSS: Layouts

Núria SorianoRafa Gómez

Master CSS layouts to create sites with a maintainable and scalable structure.

Refactoring Code Smells to Clean Code: Bloaters

🧼 Refactoring Code Smells to Clean Code: Bloaters

Rafa GómezJavier Ferrer

Learn to detect and deal with incomprehensible code 🤟

Mechanical Keyboards

⌨️ Mechanical Keyboards

Rafa GómezJavier Ferrer

Build your perfect and fully customized keyboard

Makefiles

🐂 Makefiles

Rafa GómezJavier Ferrer

Centralizing tasks in our applications is very important, and Makefiles simplify this significantly.

Monitoring with Prometheus

🔥 Monitoring with Prometheus

Rubén CougilRafa Gómez

Observability is one of the most important aspects of programming, and Monitoring is one of its main pillars.

Visualize Prometheus Metrics with Grafana

👁‍🗨 Visualize Prometheus Metrics with Grafana

Rubén CougilRafa Gómez

Learn how to create a dashboard of 10 using Grafana with Prometheus as the datasource.

Bash for Everyday: Scripting & Productivity

💻 Bash for Everyday: Scripting & Productivity

Rafa Gómez

Learn to use the Swiss Army Knife of programmers 😬

Notion: Team Productivity

🌈 Notion: Team Productivity

Javier Ferrer

Centralize all your work team's documentation and task management in one single tool: Notion.

Everything about dotfiles

🚀 Everything about dotfiles

Rafa Gómez

Learn to automate, centralize, and share all your configurations thanks to dotfiles.

Productivity with iTerm: macOS Terminal

💨 Productivity with iTerm: macOS Terminal

Rafa GómezJavier Ferrer

We will see how to have a super fast and very productive terminal thanks to some simple (and hidden) tips.

Automate Your Workflow with GitHub Actions

🤖 Automate Your Workflow with GitHub Actions

Rafa GómezJavier Ferrer

We will create our own actions (we'll even publish one in the Marketplace!) that can be very useful in our daily lives.

100% Productive Terminal with Zsh

👨‍💻 100% Productive Terminal with Zsh

Rafa GómezJavier Ferrer

Achieve being a Productivity Raptor™ with your terminal thanks to Zsh, Oh My Zsh, Zim, and advanced functions.

Continuous Integration with GitHub Actions

⚙️ Continuous Integration with GitHub Actions

Rafa GómezJavier Ferrer

Achieve a reliable and super-fast Continuous Integration! With GitHub Actions, we'll see how to achieve it.

Maximizing IntelliJ

Maximizing IntelliJ

Rafa GómezJavier Ferrer

Boost your productivity by maximizing IntelliJ! Achieve a minimalist look, create files with custom templates, secret shortcuts, and much more.

DDD in Java

DDD in Java

Rafa GómezJavier Ferrer

Step by step create your Java application following Domain-Driven Design. Folder structure, integration with DB, queue system, CQRS and more.

DDD in PHP

🐘 DDD in PHP

Rafa GómezJavier Ferrer

Step by step create your PHP application following Domain-Driven Design. Folder structure, database integration, queuing system, CQRS, and more.

Git: Introduction and Team Work

🔀 Git: Introduction and Team Work

Rafa GómezJavier Ferrer

Learn to work in a team with Git and make the most of advanced aspects such as debugging, merge strategies, and much more.

Introduction to Go: Your First App

👶 Introduction to Go: Your First App

Joan López de la FrancaAdrián Pérez

Develop your first console command with Go while learning what makes this trendy language different.

Testing: Introduction and Best Practices

Testing: Introduction and Best Practices

Javier FerrerRafa Gómez

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™

ELK: Centralize logs with Elastic Stack

📊 ELK: Centralize logs with Elastic Stack

Rubén CougilJavier Ferrer

Learn how to set up a stack to exploit all the information from your logs thanks to Elasticsearch, Logstash or Beats, and Kibana

Domain-Driven Design: DDD Applied

🗿 Domain-Driven Design: DDD Applied

Javier FerrerRafa Gómez

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.

Migrating to VueJS Progressively

🤏 Migrating to VueJS Progressively

JuanMa Garrido

Learn how to migrate an existing frontend to Vue.js starting from HTML, CSS, and JS generated by the backend

Kubernetes for Developers

Kubernetes for Developers

Jose Armesto

Learn to orchestrate Docker containers and deploy them on Azure, GCE, or AWS following best practices

Applied SOLID Principles

🧱 Applied SOLID Principles

Javier FerrerRafa Gómez

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

Communication Between Microservices: Event-Driven Architecture

💬 Communication Between Microservices: Event-Driven Architecture

Javier FerrerRafa Gómez

Publish and consume domain events, eventual consistency, RabbitMQ and AWS SNS-SQS, migration from monolith to services, and much more.

Good Practices of BDD with Gherkin

🥒 Good Practices of BDD with Gherkin

Alberto GualisJavier RubioDani Latorre

You will learn from the basic concepts to test your application with Cucumber or Behat, to best practices tips to make your test suite more easily maintainable.

Functional Programming: Refactoring OO to TypeClasses

ƛ Functional Programming: Refactoring OO to TypeClasses

Juan Manuel SerranoJavier Fuentes

Introduction to pure functional programming in Scala and its advantages through type classes.

Docker: From 0 to Deploy

🐳 Docker: From 0 to Deploy

Jose Armesto

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.

CQRS and Event Sourcing with Kotlin and Axon Framework

🤹 CQRS and Event Sourcing with Kotlin and Axon Framework

Jordi LlonchRamon Aranda

We will learn what Event Sourcing is and how it complements the CQRS architecture. The practical part of the course will consist of developing a shopping cart for an ecommerce using Kotlin and the Axon framework.

Your First HTTP API with Scala

🗣️ Your First HTTP API with Scala

Javier FerrerRafa Gómez

Having completed the first introductory course on Scala, we can now get into the subject and develop our first HTTP API with Scala, Akka, database, and much more.

AWS: Scaling apps - Load Balancers and Auto Scaling Groups

📈 AWS: Scaling apps - Load Balancers and Auto Scaling Groups

Jose Armesto

José Armesto will continue the series of courses on AWS discussing how to scale. We will introduce AWS Load Balancers and Auto Scaling Groups.

Hexagonal Architecture

🎯 Hexagonal Architecture

Javier FerrerRafa Gómez

Domain-Driven Design relies on Hexagonal Architecture as one of its technical pillars. Learn how to implement it with CodelyTV!

Introduction to Scala

🌀 Introduction to Scala

Javier FerrerRafa Gómez

Scala is a concise, less verbose language that allows functional programming without forgetting object-oriented programming. We will learn how to set up the environment, the basics of the language, asynchrony and other tips to get started.

AWS EC2: Your First Deploy

☁️ AWS EC2: Your First Deploy

Jose Armesto

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!

CQRS: Command Query Responsibility Segregation

🚌 CQRS: Command Query Responsibility Segregation

Javier FerrerRafa Gómez

Increase the performance and decoupling of your backend through CQRS. We will explore concepts and implementations of synchronous and asynchronous buses.

Pay according to your needs

lite (only monthly)

19 €
per month
  • Access to a subset of courses to lay the foundation for maintainable, scalable, and testable code
  • Company invoice
Popular

standard

24,92 €
Save 121
Annual payment of 299
per month
  • Full course catalog
  • Design and architecture challenges
  • Highlighted solutions videos for challenges
  • Receive job offers verified by Codely
  • Company invoice

premium

41,58 €
Save 89
Annual payment of 499
per month
  • Everything above
  • More benefits coming soon

We won’t increase the price while your subscription is active