About the Backend Architecture course

In this course about Backend Architecture you will learn how to work with Kotlin, architect your code to be scalable and maintainable, responding to business appropriately.

You will get to know: how to apply DDD to model your business processes, split into bounded contexts, how to apply TDD to keep the code free of bugs and how to apply the best practices to produce maintainable, high-quality software.

Certificate: After finishing the course, the student will receive a Completion Certificate.

Course Language: The course will be entirely in Spanish.

Backend Architecture Course topics

  • Paradigms: Object-Oriented (polymorphism, inheritance…) + Functional (immutability, streams, …)
  • Decoupling services (repository pattern, application service, domain service…): Functional Core + Imperative Shell
  • Architecture patterns: Clean Architecture, Hexagonal Architecture (Ports & Adapters)
  • Testing: types of test, test doubles, other tools
  • Domain-Driven Design (DDD)
  • Design Principles (SOLID, KISS, DRY, …)
  • Patterns (MVC, Use Case, Factory, builder, adapter, facade, decorator…)

Reference Materials: Alongside the course, students will be given reference materials with additional information.

Backend Architecture Course Outline

  1. Lesson 1: Introduction: Kotlin + Functional Theory + Practice
  2. Lesson 2: Test-Driven Development (I) Theory + Practice
  3. Practical Guided Exercises: based on lesson 1 & 2
  4. Lesson 3: SOLID + Principles Theory + Practice
  5. Lesson 4: Refactoring Legacy Code Theory + Practice
  6. Practical Guided Exercises: based on lesson 3 & 4
  7. Lesson 5: Backend Architecture Theory + Practice
  8. Lesson 6: Domain-Driven Design (I) Theory + Practice
  9. Practical Guided Exercises: based on lesson 5 & 6
  10. Lesson 7: Domain-Driven Design (II) Theory + Practice
  11. Lesson 8: Test-Driven Development (II) Theory + Practice
  12. Practical Guided Exercises: based on lesson 7 & 8

What will you learn on this Backend Architecture course?

  • Best practices for backend development (including SOLID Principles)
  • Test-Driven Development: Mockist / Classicist + Inside-out / Outside-In
  • Domain-Driven Design (DDD)
  • How to organize your work seamlessly and break down complex requirements into easy to solve tasks
  • How to choose the proper tools for every issue
  • How to develop using a mix of functional and object-oriented programming
  • How to decouple your application from infrastructure
  • How to test your backend application
  • How to architect your backend application
  • All of this will be explained using Kotlin as programming language

Starting Date, Duration & Schedule of the course

TBD: No dates are scheduled for this workshop/course. Let us know if you think we should organize it near you, or if you’d like to book it on premise in your organisation.

Duration: This course consists of 24 hours divided into 12 sessions of 2 hours each (4 weeks).

Schedule: Tuesdays, Thursdays and Fridays from 18:30 to 20:30.

If you want to be up to date with our courses and workshops, you can add our Google Calendar:

Add Our Calendar


Álvaro García

Álvaro García is a Principal Engineer at Apiumhub who believes in eXtreme Programming methodology. He’s embarked on a lifelong learning process and is now a co-organizer of Barcelona Software Craftsmanship meetups and events.

Rafa Ruiz

Rafa is a full-stack developer at Apiumhub. Thanks to his professional and academic experience in backend and frontend he’s a versatile and all-around developer. He’s enthusiastic about best practices and architecture discussions. Owns two cats.

Price & Payment Methods

TBD: No dates are scheduled for this workshop/course. Let us know if you think we should organize it near you, or if you’d like to book it on premise in your organisation.

You can choose between three different payment methods for this course:

  • Method 1: Bank Transfer
  • Method 2: Installment Payment
  • Method 3: Direct Payment using Xing

Alumni Testimonials

Interested in this course? Contact us!