Become a Kotlin pro.


If you're on this page, Kotlin will need no introduction. You know the basics, and you've written your fair share of Kotlin in production for your projects, either personal or at work.

Perhaps your codebase has become larger than you can manage, or you would like to become a senior developer, or need to write libraries and tools for other team members.

For this, you need deep knowledge of Kotlin's type system and internals, so that you can create the best tools.

This course is for you.

Is There More to Kotlin?

Oh yeah.

You already know that Kotlin is such a game changer. It's very pragmatic, very flexible, has a powerful compiler, and allows you to write concise code that's easy for other people to understand.

But there's far more to it.

Beyond essentials OOP or functional principles, Kotlin has features that few developers have mastered. Kotlin's type system is among the best on the JVM, and the tools to manipulate types and code at runtime are top notch.

With these tools, you can write libraries, tools for other developers, frameworks for large codebases, and much more.

This is what you'll learn in this advanced Kotlin course.

How This Course Works

Who is this course is for?


This course is best for Kotlin developers who need to deeply understand the internals of Kotlin and use its type system to write complex applications, libraries, tools, code generators or analyzers.

If you're a Kotlin developer looking to become senior, this course is for you.

If this is your first time with Kotlin, the Kotlin Essentials course is your best starting point.

And rest assured - if you buy this course and find that it's not for you, you'll get your money back anytime 💰

This course is 100% hands-on - this picture shows the code we write in this course.

Platform Agnostic


Many people learn Kotlin to build Android apps. Like the Kotlin Essentials course, this advanced course does not focus on Android, but on Kotlin itself.

The skills you get in this course will allow you to build complex systems, libraries and tools for other developers. Notice that this applies to Android, the JVM, native code, KotlinJS, or anything else - this course transcends any platform!

If you are specifically looking for an Android course, this course is still useful because after you finish this course, you can study the Android specifics without thinking too much about Kotlin - because by this time it will be second nature to you.

Regardless of what your goal is, this Kotlin course will help you no matter where you deploy your code.

100% Practical


As always, code is king, and we write it from scratch.

We don't waste time on endless theory, and I only use a few slides every lesson as "flashcards" you can come back to. You'll also get the slides in PDF for easy recall.

Besides the dozens of examples that demonstrate the most complex Kotlin features, we spend a lot of time in real-life exercises, where we try to write (at small scale) the same kind of tools you'd be in charge of at work.

The picture you see here is a mini-library we write in the course for HTML rendering with a nice DSL.

In the process, you'll get hands-on experience not only with the hard Kotlin features, but you'll get a sense of what it's like to write complex code for other people.



Skills You'll Learn



After this course, you'll be able to:

understand the most complex Kotlin features

contribute to complex codebases

write libraries and tools for other developers

use the Kotlin type system for generic, easily reusable code

write frameworks that generate or analyze other source code

Skills you'll get:

  • Kotlin type system mastery
  • OOP and FP (obviously)
  • Delegation and delegated properties
  • Using delegated properties in the standard library for specific contexts
  • Simplifying your types
  • Using advanced generics with variance
  • Understanding the compiler type-checker and variance positions
  • Kotlin internals proficiency
  • Contracts and compiler type checks
  • Inline functions and performance optimization
  • Avoiding JVM type erasure
  • Using reified types 
  • Using reflection for manipulating and using code dynamically at runtime
  • Creating code generators and analyzers
  • Writing symbol processors

and much more, all with live runnable examples and practiced with exercises.

Plus some extra perks:

  • You'll have access to the entire code I write on camera (1800+ LOC)
  • You'll be invited to our private Slack room where I'll share latest updates, discounts, talks, conferences, and recruitment opportunities
  • You'll have access to the takeaway slides


Meet Rock the JVM

Daniel Ciocîrlan


I'm a software engineer and the founder of Rock the JVM.

I worked on my first production Kotlin server-side application in 2017 (when Kotlin server-side wasn't cool yet 😆), a logistics management application for a big plane manufacturer. I've written a lot more code since, I learned a ton, and I want to share everything.

As of February 2024, I've taught Kotlin, Scala and other libraries to 100000+ students at various levels and I've held live training sessions for some of the top companies in the industry, including Adobe and Apple. I've also taught university students who now work at Google and Facebook (among others), I've held Hour of Code for 7-year-olds and I've taught more than 35000 kids to code (not in Kotlin, yet 😆).

You're in good hands in this course. I'll guide you every step of the way, and our private community at Rock the JVM is full of passionate people just like you.


With Special Thanks To


Riccardo Cardin, one of the best Rock the JVM alumni, now a senior software engineer and an important contributor on the Rock the JVM blog, focusing on high-performance systems in Scala, Kotlin and Java. Big thanks, Riccardo, for reviewing the code I prepared for this course.

kjpargeter on Freepik for the free background I used for photoshopping the banner of the course.

Take this course now!

100% Money Back Guarantee

If you're not happy with this course, I want you to have your money back. If that happens, email me at [email protected] with a copy of your welcome email and I will refund you the course.

Less than 0.05% of students refunded a course on the entire site, and every payment was returned in less than 72 hours.

FAQ


1. Does this course cover Android?

This is beyond Android - this course is 100% focused on Kotlin as a programming language, without caring which platform you're going to write code for.

2. How is a typical lesson like?

We generally create separate mini-applications where we'll explore a certain feature of the Kotlin language, with examples and exercises. Each lesson is about 20-30 mins long.


3. Is this advanced Kotlin course hard?

If you know your way around Kotlin basics (at the level of the Kotlin Essentials course), you should be fine.

If this is your first time with Kotlin (or first time coding), I recommend you take the Kotlin Essentials course first.


4. Do you give a certificate?

Sure do! You'll automatically get a certificate which you can export and use this to get reimbursed or land your Kotlin job.

5. Can I expense this at my company?

Of course! After you enroll, you'll automatically get a tax-compliant receipt which you can use to reimburse this course with your employer.


6. I'm just starting out with Kotlin. Should I take this course?

Probably not. The essentials course might be better for you.

7. What if I don't like the course?

Money back, easy 💰 Only a handful of people ever asked for a refund on the entire site of 20+ courses, just to give you an idea.


8. Do you have any connection to JetBrains or the Kotlin Foundation?

Nope - this course is not affiliated with JetBrains (the creators of Kotlin), Google or the Kotlin Foundation. I hope they say good things about this course once they see it, though!