Kotlin Backends Built for the Real World.

Master Kotlin Spring Boot development by building a production-grade backend for a chat app in over 120 video lessons and 20h of content

System Design
PostgreSQL
Redis
Authentication
Security
Notifications & Mailing
CI/CD
In collaboration with

After This Course, You Will…

Understand backend system design

You won’t just work on the backend code itself, but also learn about how the entire server infrastructure needs to look like to support the level of scale you need.

Confidently build backends built for a scaling user base

This course does NOT focus on building quick hobby backends – instead you will learn real-world practices that prepare your backend for a growing user base.

Deploy Spring Boot instances via CI/CD pipelines

Deployment is simple once automated. In this course, you’ll learn to implement a GitHub Actions pipeline that brings it online with a simple GitHub push.

Built to Scale.

This course focuses on teaching you build backends for a real scaling user base – and how you can come up with a system design yourself that matches your app’s unique requirements.

Spring Security

Use Spring Security & JWT to build a secure authentication system for your users.

PostgreSQL

Structure an SQL database with 10 tables and relations to save complex user data.

Redis

Implement caching strategies with Redis to ensure fast data access for any client.

RabbitMQ

Ensure no important event gets lost by relying on RabbitMQ message queues.

WebSockets

Exchange messages with clients in real-time via WebSockets.

Firebase Admin SDK

Send push notifications to Android & iOS clients via the Firebase Admin SDK.

Mailing

Send transactional emails with Mailgun, for example for forgot password emails.

File Storage

Learn to efficiently store files remotely and work with pre-signed URLs.

These 120 Videos Are Waiting for You

Get Instant Access to 20+ Hours of Exclusive Video Material

1. Prerequisites

  • Prerequisites
  • Disclaimer Before Watching
  • What We’ll Build
  • How You Get the Most Out of This Course

2. System Design

  • What is system design?
  • Monolith vs. Microservices & The Architecture We Choose
  • Authentication
  • Data Storage with PostgreSQL & Supabase
  • Caching With Redis
  • Message Queues With RabbitMQ
  • Real-Time Communication
  • Notifications & Mailing
  • Load Balancing & Reverse Proxy
  • Self-Hosting vs. Cloud
  • Our System Design From a High Level
  • How Much Kotlin Do We Want In Spring Boot?
  • Which Persistence API to Use?

3. Multi-Module Setup

  • Understanding Our Architecture & Module Structure
  • Project Creation
  • Managing Gradle Dependencies With Version Catalogs
  • Creating the Gradle Modules
  • Sharing Config With the Build-Logic Module
  • Kotlin Common Convention Plugin
  • Spring Boot Service Convention Plugin
  • Spring Boot App Convention Plugin

4. User Service

Foundation & Setup

  • Setting up the User Domain Models
  • Supabase Setup
  • Creating the User Service Schema
  • Creating the User Database Entity
  • Building the User Repository

User Registration

  • Password Security With BCrypt
  • User Registration DTOs & Mappers
  • User Registration Service Logic
  • User Registration API Endpoint

JWT Authentication

  • Understanding JWT Token Refresh
  • Building the JWT Service
  • Refresh Token Storage System

User Login

  • User Login Service Logic
  • Logging In Users

Token Refresh Mechanism

  • Token Refresh Service Logic
  • Token Refresh API Endpoints
  • Logging Out Users

Email Verification System

  • Email Verification Token Database Setup
  • Generating Email Verification Tokens
  • Email Verification Service Logic
  • Email Verification API Endpoints

Password Reset System

  • Password Reset Token Database Setup
  • Password Reset Service Logic
  • Password Reset API Endpoints

Security & Rate Limiting

  • Why & When to Use Rate Limits
  • Connecting to Redis
  • Email Rate Limiting
  • Resolving the True Client IP
  • IP-Based Rate Limiting System
  • JWT Authentication Filter
  • Spring Security Config

5. Sending Emails From the Notification Service

Event-Driven Architecture Foundation

  • CloudAMQP Setup
  • User Events
  • Setting up RabbitMQ Queues
  • Building the Event Publisher
  • Resend Verification Email Mechanism
  • Listening to User Events

Email Template System

  • Creating HTML Email Templates With Thymeleaf
  • Email Template Service

Email Sending Infrastructure

  • Mailgun Setup
  • Building the Email Service

6. Building the Chat Service

Chat Data Foundation

  • Creating the Chat Domain Models
  • Chat Service DB Setup
  • Chat Participants Repository
  • Chat Repository
  • Chat Message Repository

Chat Management System

  • Creating Chats
  • Chat Management API Endpoints

Chat Participants Management

  • Creating Participants
  • User Event Integration For Chat
  • Adding & Removing Participants From a Chat

Chat Messaging Core

  • Building the Message Service
  • Message Management API
  • Message Events & Notifications
  • Redis for Message Caching
  • Loading Chats For Users

Real-Time WebSocket Communication

  • Building the WebSocket Handler – Connection Management
  • WebSocket Message Handling
  • Broadcasting Chat Updates
  • WebSocket Ping/Pong Mechanism
  • Handling Closed Connections

Updating Profile Pictures & File Storage

  • Supabase Storage Integration
  • Profile Picture Service Implementation
  • Profile Picture API Endpoints

7. Push Notifications

Firebase Admin SDK Setup

  • Project Setup
  • Linking Your Apple Developer Account
  • Creating the Firebase Notification Client

Device Token Management

  • Device Token Database Setup
  • Implementing the Push Notification Service
  • Device Token API Endpoints
  • Retry Mechanism For Failed Deliveries
  • Triggering Push Notifications

8. Deployment

Ubuntu VPS

  • Preparations
  • Base Setup for VPS Server
  • Deployment & GitHub Actions Automation

1. Prerequisites

  • Prerequisites
  • Disclaimer Before Watching
  • What We’ll Build
  • How You Get the Most Out of This Course

2. System Design

  • What is system design?
  • Monolith vs. Microservices & The Architecture We Choose
  • Authentication
  • Data Storage with PostgreSQL & Supabase
  • Caching With Redis
  • Message Queues With RabbitMQ
  • Real-Time Communication
  • Notifications & Mailing
  • Load Balancing & Reverse Proxy
  • Self-Hosting vs. Cloud
  • Our System Design From a High Level
  • How Much Kotlin Do We Want In Spring Boot?
  • Which Persistence API to Use?

3. Multi-Module Setup

  • Understanding Our Architecture & Module Structure
  • Project Creation
  • Managing Gradle Dependencies With Version Catalogs
  • Creating the Gradle Modules
  • Sharing Config With the Build-Logic Module
  • Kotlin Common Convention Plugin
  • Spring Boot Service Convention Plugin
  • Spring Boot App Convention Plugin

4. User Service

Foundation & Setup

  • Setting up the User Domain Models
  • Supabase Setup
  • Creating the User Service Schema
  • Creating the User Database Entity
  • Building the User Repository

User Registration

  • Password Security With BCrypt
  • User Registration DTOs & Mappers
  • User Registration Service Logic
  • User Registration API Endpoint

JWT Authentication

  • Understanding JWT Token Refresh
  • Building the JWT Service
  • Refresh Token Storage System

User Login

  • User Login Service Logic
  • Logging In Users

Token Refresh Mechanism

  • Token Refresh Service Logic
  • Token Refresh API Endpoints
  • Logging Out Users

Email Verification System

  • Email Verification Token Database Setup
  • Generating Email Verification Tokens
  • Email Verification Service Logic
  • Email Verification API Endpoints

Password Reset System

  • Password Reset Token Database Setup
  • Password Reset Service Logic
  • Password Reset API Endpoints

Security & Rate Limiting

  • Why & When to Use Rate Limits
  • Connecting to Redis
  • Email Rate Limiting
  • Resolving the True Client IP
  • IP-Based Rate Limiting System
  • JWT Authentication Filter
  • Spring Security Config

5. Sending Emails From the Notification Service

Event-Driven Architecture Foundation

  • CloudAMQP Setup
  • User Events
  • Setting up RabbitMQ Queues
  • Building the Event Publisher
  • Resend Verification Email Mechanism
  • Listening to User Events

Email Template System

  • Creating HTML Email Templates With Thymeleaf
  • Email Template Service

Email Sending Infrastructure

  • Mailgun Setup
  • Building the Email Service

6. Building the Chat Service

Chat Data Foundation

  • Creating the Chat Domain Models
  • Chat Service DB Setup
  • Chat Participants Repository
  • Chat Repository
  • Chat Message Repository

Chat Management System

  • Creating Chats
  • Chat Management API Endpoints

Chat Participants Management

  • Creating Participants
  • User Event Integration For Chat
  • Adding & Removing Participants From a Chat

Chat Messaging Core

  • Building the Message Service
  • Message Management API
  • Message Events & Notifications
  • Redis for Message Caching
  • Loading Chats For Users

Real-Time WebSocket Communication

  • Building the WebSocket Handler – Connection Management
  • WebSocket Message Handling
  • Broadcasting Chat Updates
  • WebSocket Ping/Pong Mechanism
  • Handling Closed Connections

Updating Profile Pictures & File Storage

  • Supabase Storage Integration
  • Profile Picture Service Implementation
  • Profile Picture API Endpoints

7. Push Notifications

Firebase Admin SDK Setup

  • Project Setup
  • Linking Your Apple Developer Account
  • Creating the Firebase Notification Client

Device Token Management

  • Device Token Database Setup
  • Implementing the Push Notification Service
  • Device Token API Endpoints
  • Retry Mechanism For Failed Deliveries
  • Triggering Push Notifications

8. Deployment

Ubuntu VPS

  • Preparations
  • Base Setup for VPS Server
  • Deployment & GitHub Actions Automation

Philipp Lackner has over 14 years of experience in the software field. Over the past years, he built a following of over 250,000 developers on social media who trust his work. With over 20,000 sold copies of his courses and 700h+ spent for teaching Android concepts, he already helped hundreds of thousands people to learn practical skills they can immediately apply.

He has a degree in computer science, however it didn’t go as expected. The amount of theory that was taught in university made him think about a better approach to learn what is really needed in the real world. Over time, Philipp found mentors who taught him exactly that in a practical setting. That was the game changer for his career.

After having worked for dozens of companies around the globe as a consultant, Philipp now wants to teach other mobile developers what really counts for becoming an outstanding developer.

Philipp Lackner has over 14 years of experience in the software field. Over the past years, he built a following of over 250,000 developers on social media who trust his work. With over 20,000 sold copies of his courses and 700h+ spent for teaching Android concepts, he already helped hundreds of thousands people to learn practical skills they can immediately apply.

He has a degree in computer science, however it didn’t go as expected. The amount of theory that was taught in university made him think about a better approach to learn what is really needed in the real world. Over time, Philipp found mentors who taught him exactly that in a practical setting. That was the game changer for his career.

After having worked for dozens of companies around the globe as a consultant, Philipp now wants to teach other mobile developers what really counts for becoming an outstanding developer.

800H+

of Created Kotlin content

15,000+

Enrolled Students

14

Years of Software dev

What People Say About Philipp’s Courses

Pavel learned building apps for his clients thanks to Philipp’s courses

“If it wasn’t for him, I wouldn’t be here today.”

Martin Kiper convinced his interviewers thanks to Philipp’s courses.

“The return of the investment is insane for the courses.”

Rahul Ahuja gained the knowledge needed for an Android job in another country

“What these courses gave me was a push to develop real-world applications rather than doing some proof-of-concept stuff.”

Alon Shlider saved countless hours thanks to Philipp’s courses

“You can try it on your own with the Android docs, but it will take MUCH longer.”

Simon applies concepts learned from Philipp’s courses in an app with 5M downloads

“After just 20min, Philipp was able to answer all my questions.”

Esau has the same position as developers with 2 more years of experience

“Philipp’s courses are really worth what they cost.”

The Course at a Glance

Make a one-time investment for lifetime access to

  • 120 Exclusive Videos About Kotlin Backend Development Spanning 20h: Learn how production-grade backend systems are structured and build your own server handling traffic for a chat client app.

  • Certificate Awarded at the End: At the end of the course, you’ll be able to take a quiz and get a certificate after passing to show off your expertise in Android development.

  • Unlimited Access: You can watch the course materials in your own pace at any time.

  • Optional Extension: In checkout, you can extend your purchase to the Kotlin Full-Stack Developer Bundle, get an additional bundle discount and learn to build the Kotlin Multiplatform client apps as well (covers Android, iOS, Windows, MacOS & Linux)

Total value: 249 EUR

Launch Deal: 179 EUR

30% PL Coding Early-Bird Discount: -54 EUR

Early Bird Deal: 125 EUR

20h of video material

30-day money-back guarantee

120+ video lessons

Approved by JetBrains

Total value:
249 EUR

Launch Deal:
179 EUR

30% PL Coding Early-Bird Discount:
-54 EUR

Early Bird Deal:
125 EUR

55h of video material

30-day money-back guarantee

300+ video lessons

Approved by JetBrains

30% Extra Discount on ALL Courses & Bundles

Discount already applied in checkout. Only during the launch week of the new Kotlin Full-Stack Developer Bundle.

Day(s)

:

Hour(s)

:

Minute(s)

:

Second(s)

FAQ

What are the prerequisites to take this course?

The prerequisites are understanding basic concepts of the following technologies:

  • Kotlin
  • Spring Boot Basics (a free crash course to learn this will be provided)

Will I get a certificate on completion?

Yes, after following through the courses, you can take a final quiz that covers the concepts taught in the course. If you pass it, you will be awarded a certificate that proves that you can confidently apply full-stack concepts with Kotlin.

What does "in collaboration with JetBrains" mean?

We’ve collaborated with JetBrains – the makers of Kotlin Multiplatform itself – to create this course. This means the entire course bundle has been reviewed and approved by JetBrains’ KMP developer advocates – those people who fundamentally contributed to the technology itself.

Is there a money back guarantee?

Just as for all of our courses, you get a voluntary 30-day money back guarantee in case you’re not satisfied with the course content.

Do I get lifetime access?

Yes, it’s a one-time investment into your career to keep access to the course and updates in future.