Typelevel Rite of Passage
Create a full-stack Scala application using the Typelevel stack in our comprehensive course: learn to integrate features like credit card checkout and emails. Perfect for hands-on, real-world development experience.
- Duration
- 35h of 4K content
- Lessons
- 71 lessons
By Daniel Ciocîrlan
Money-back guarantee · Unlimited access · Free updates
Course Roadmap
Skills You'll Learn
- Build REST APIs with authentication and authorization
- Implement role-based access control with JWTs
- Send email from a Scala backend
- Validate and invalidate user sessions
- Sanitize and validate user input
- Charge credit cards with Stripe
- Host and transform images
- Implement incremental loading and pagination
- Build complex backend filters
- Handle loading and error states in the frontend
- Apply the Elm frontend architecture
- Implement client-side routing
- Work with asynchronous effects throughout the stack
- Process webhooks
- Layer and decouple application modules
- Configure for dev, staging, and production
- Write test-driven code with mocking and TestContainers
- Deploy with custom domains
Goal
Build a Full-Stack Application with Scala 3 and the Typelevel Stack
Just as Scala has transformed the way we build applications with functional programming, the Typelevel stack is changing how we build strong, testable and provably correct APIs.
With a focus on functional Scala and a real world application, this course is a start-to-finish way to learn Full Stack Scala 3 with Cats, Cats Effect and friends.
Join me as I show you how to build a full stack jobs platform with the latest evolution of Scala and functional libraries.
What is Typelevel?
Typelevel is a set of Scala libraries for building robust, scalable and high-performance applications.
Say what?
The foundation for Typelevel is pure functional programming and Scala’s unmatched type system. With these tools, we can let the Scala compiler work in our favor, so we can write more modular code and in the end become more productive and happier as developers.
We will use all major Typelevel tools and libraries in this course.
How This Course Works
What will you build?
Together we will build the Rock the JVM Jobs Board, a full stack online jobs platform with credit card integration. Users can create and manage their account, post and view jobs, and apply for them.
We will build the application from scratch, using a decoupled layered architecture on the backend, and an Elm-like architecture on the frontend with ScalaJS.
The app includes many server-side bits including authentication, permissions, sending email, uploading images, and charging credit cards. We have almost complete test coverage in the backend, and we develop some core modules with test-driven development (TDD).
The frontend is built as a single-page application, organized for for scalability if you want to add new pages or functional components.
For a full list of topics covered, see below.
”Real-Life” means Real-LIVE
I want to put my code where my mouth is.
The application that you learn to build in this course is fully deployed and live here:
Yes, it’s a real jobs platform that I will personally use for my students at Rock the JVM!
If you’re a company and want to promote your jobs to the Rock the JVM community, go ahead and use it!
And before you ask: yes, I’ll teach you to do EVERYTHING from an empty dir to deploying on your own domain.
This isn’t even a “project-based” course. You will learn to build a full-blown product that people can use and pay for. You can build your startup with what you learn in this course.
Who Is This Course For?
Scala developers who want to expand their Scala skills with a full-blown product as a full-stack application.
You should be comfortable writing any sort of Scala code, as we don’t go over the Scala fundamentals. The beginner and advanced Scala courses focus on the language.
You should already be familiar with Cats and Cats Effect. We’ll do a round of recap at the beginning of the course, but we’ll focus more on the project.
The frontend is written in ScalaJS with Tyrian. Any experience with them is nice, but 100% not needed.
To sum up, this course is for
- anyone looking for a complete end-to-end Scala project
- backend developers looking to go full-stack on Scala
- Scala developers looking to advance their skills and career
- anyone who wants to get better at Scala, full-stack architecture or functional programming
Not sure if it’s for you? 100% money back if it’s not a fit for you 💰
In any case, don’t be scared. We’ll build something great together.
100% Practical
This course is long so we waste no time. This screenshot shows you what you’ll write.
As with anything at Rock the JVM, this course is hands-on. We start by recapping the fundamentals of major Typelevel libraries (Cats, Cats Effect, Doobie, Http4s etc) and then we get started.
We’ll build the project from scratch, starting from a blank directory and from first principles. As our code becomes more complex, we will modularize as necessary.
We will arrive at our decoupled layered architecture organically, without my imposing any style on you from the start. You will find it quite extensible and modular.
A big chunk of the backend is written in test-driven development style. We also have chunks where we write tests after the implementation, so that you feel the difference first-hand. In any event, we do extensive testing and our app will be robust.
As for the frontend, we will add ScalaJS support from scratch, then we’ll start scaffolding our app for scalability so you can easily add a new page or stateful component.
We will also design our domain in a careful way so that the frontend and backend share the same definitions, eliminating nasty bugs due to schema mismatches.
The Tech Stack
Cats
Cats Effect
Doobie
Http4s
Tyrian
Honorable Mentions
- PureConfig for configuration
- FS2 for incremental loading on the backend
- FS2 for SPA history management on the frontend
- TSec for JWT authorization and RBAC
- Circe for JSON
- Log4Cats for purely-functional logging
- ScalaTest with TestContainers wrapped in Cats Effect
What Our Students Say
-
My team is expanding the use of Akka in our products so I needed a quick introduction on this topic. I have tried a couple of courses but the introduction to Akka was always too abrupt, too hard to comprehend. I blamed Akka for this as being too hard to explain. This was until I was exposed to the Rock The JVM courses which were an absolute delight when it comes to presenting such complex topics in such an easy to understand way. And Daniel has not stopped at Akka but has added to his portfolio amazing courses on Scala and Spark too. It seems like he is quite enjoying taking such challenges like complex technologies and making them so simple for everyone. I have instantly recommended Daniel’s work to my team, which helped them immensely with taking their skills to a new level, and I do recommend these courses to anyone who wants to have the fastest ramp-up in these tough but popular technologies.
Mihai FecioruAdobe · California
-
From Scala, to Akka, to Spark, Daniel delivers exceptional material in each and every one of these technologies. I’ve been using them for a long time and there is always something new I will discover from him. The level of detail he gets into as well as the way he delivers material is mindblowing. I personally find his latest course Spark Optimization pure gold and one of a kind. I’ve been using Spark for a year now and I haven’t even thought how much you can leverage query plans to make such optimizations. I can’t stop thinking every time, how he manages to go so deep - because using a technology is one thing, but knowing its internals so well and how everything works behind the scenes is another story when it comes to distributed systems. Long story short Daniel is definitely the best instructor I’ve come across and each one of his courses is the best resource you can find online. Kudos for all your work and knowledge sharing.
Giannis PolyzosVerverica · Greece
-
Daniel’s courses on Scala and Big Data are the best in class. I’ve been in touch with Daniel’s teaching and courses since early 2018. The first course that I took from him was Scala & Functional Programming; I was skeptical about it because over the internet there are many courses you can find, but few really worthy. I remember the very first day when Daniel started to speak and shared his examples - I started to love Scala, and then more as we went on. I am with Scala for the last 5 years now, but never ever has anyone explained to me or gave me comparable resources to Rock the JVM. Daniel gave me a shift in life and helped me crack top tech company interviews. His courses on big data are a must for any aspiring big data developer or data enthusiast. I highly recommend Daniel as an educator both online and on campus.
Anirban GoswamiApple · California
What's Included
Backend Stage 1: Job Management
Backend Stage 2: User Management and Security
Frontend Stage 2: User Management
Frontend Stage 3: Job Management
Deployment
Errata
Meet Rock the JVM
Daniel Ciocîrlan
Founder, Rock the JVM
I'm a software engineer and the founder of Rock the JVM.
I started Rock the JVM out of love for Scala and the technologies it powers. They are amazing tools, and I want to share as much of my experience with them as I can.
I've taught Java, Scala, Kotlin and related technologies such as Cats, ZIO and Spark to 100,000+ students at various levels. I've held live training sessions for companies including Adobe and Apple, taught university students who now work at Google and Facebook, run Hour of Code for 7-year-olds, and taught more than 50,000+ kids to code.
I have a Master's Degree in Computer Science and I wrote my Bachelor and Master thesis on Quantum Computation. Before learning programming, I won medals at international Physics competitions.
In collaboration with
Riccardo Cardin
Riccardo Cardin is a proud Rock the JVM alumnus and senior software engineer focusing on high-performance systems in Scala, Kotlin and Java.
He is also one of the two leading lecturers of the Software Engineering course inside the Computer Science BSc, hosted by Dipartimento di Matematica of the University of Padova.
Riccardo is actively interested in the application of design patterns and design best practices. He is constantly increasing his knowledge of the software's design and development continuously, which brought him to Rock the JVM.
With Special Thanks To
Dave Smith, the maintainer of Tyrian, for quickly reviewing and merging my PR that injects custom HTML. This allows our app to render Markdown on the frontend (pretty cool!).
@fellownoodle for the amazing Rite of Passage banner.
Enroll now!
All-Access Membership
Full (and growing) catalog
$195 billed yearly —Save 54%
Unlimited access to every Rock the JVM course
- 348 hours of 4K content
- All Scala courses
- All Kotlin courses
- All Typelevel courses
- All ZIO courses
- All Apache Spark courses
- All Apache Flink courses
- All Akka/Pekko courses
- Access to the private Rock the JVM community
- New courses included automatically
Typelevel Rite of Passage
Lifetime license
$495Just this course with a one-time payment
- 35 hours of 4K content
- All PDF slides
- Free updates
- Lifetime access
- Access to the private Rock the JVM community
100% Money Back Guarantee
If you're not happy with this course, I want you to have your money back. Contact me with a copy of your welcome email and I will refund you.
Less than 0.05% of students have ever asked for a refund — and every payment was returned in under 72 hours.