Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Core Scala

  • Scala Basics
    • Variables
    • Functions
    • Classes
    • Traits
    • Objects
    • Case Classes
    • Case Objects
    • Sealed Traits
  • Pattern Matching
  • Tuples
  • Generics
  • Monads
    • Option
    • Try
    • Either
    • Future
    • List
    • Map
  • For Comprehensions
  • Mutable and Immutable Collections
  • Scala Test
  • Scala Check
  • Higher Order Functions
  • Currying
  • Partial Functions
  • Type Classes
  • Tail Recursion
  • Reflection
  • Implicits
  • Advanced Monads
    • IO
    • State
    • Reader
    • Writer
    • Free
  • Parser Combinators
  • Macros

Spring Stack

  • Spring Core - IoC
  • Spring Core - Bean Scopes(Singleton, Prototype)
  • Spring Core - Setter/Contructor Injection
  • Spring Core - Bean Post Processor
  • Spring Core - @Value
  • Spring Core - Testing, Environment, WebTestClient
  • Spring Boot - Rest Support, RestTemplate
  • Spring Boot - Integration Test with Rest
  • Spring Data JDBC
  • Cache with Caffeine
  • Configure Transaction management with JPA
  • Spring Security: CSRF Protection
  • Spring Security: Authorize HTTP Requests(HttpSecurity and SecurityFilterChain)

Learn Frameworks and Libs

  • SBT: Simple Build Tool
  • Gson
  • Spring Data JDBC
  • Pekko
  • Json4S
  • Slick
  • Cats
  • ZIO
  • Scalaz
  • Http4s
  • Circe
  • Specs2
  • Tapir

Functional Programing Challenges 1

OOAD Challenges Round 1

  • (1) Build a TAX system where different products have different tax per state and year.
  • (2) Build a Logger Builder Router System where you can log into FS, ELK or any other log system where you can configure the logs to be sync or assync using the same API.
  • (3) Build Render Template where the same temple can be render in HTML, PDF or CSV.
  • (4) Build A Logistic System where you need to calculate different freigth prices based on volume, size and type of transportation i.e boat, truck, rail, prices are dynamic they keep changing.
  • (5) Build Restaurant Queue System Capable of telling how long each dish will take.
  • (6) Build Guitar Factory System where you can specify details of a guitar and the system creates a custon guitar for you with OS, Specs, Models. The system should keep track of Inventory.
  • (7) Build Ticket system, where you should be able to sell x number of ticker per different shows and choose the seats number, zone of the venue, date and respect maximun capacity.

OOAD Challenges Round 2

  • (1) Build a Grocery TODO List system (add item, remove, mark as done, do, re-do, listAll)
  • (2) Build a FileShare System (save files, restore files, delete files, listFiles, Search) with encryption
  • (3) Build a Note Taking system (add notes,save notes,edit notes, delete notes, sync)
  • (4) Build a Calendar system (book meetings, remove meetings, listMeetings, suggest best time for 2 people)
  • (5) Build a Redis clone client/server (Strings: set,get,remove,append, maps: set,get,keys,values)
  • (6) Build a Teacher’s Class Organizer/Optimizer
  • (7) Build a Social Media Sharing Photo App (publish photos, tag photos, timeline, comments)

Code Challenges Round 1

  • (1) Build a converter Framework where you convert complex types.
  • (2) Build a task framework where you submit tasks to your own pool of threads.
  • (3) Build a validation Framework based on Annotations.
  • (4) Build a observability core framework based on latency metrics.
  • (5) Build a code generator based on YAML Definitions.
  • (6) Build a Core Bank Ledger.
  • (7) Build a HTTP Server supporting /GET endpoints.

Code Challenges Round 2

  • (1) Build a Stress Test Framework for HTTP
  • (2) Build a Dont Pad
  • (3) Build a Unused Class Detector
  • (4) Build a Murder Mistery Game using terminal and linux
  • (5) Build a Implement your own String Implementation methods: (toArray,foreach,reverse,iterator,length,charAt,equals,isEmpty,replace,substring,trim,toJson,indexOf,hashCode)
  • (6) Build a Hibernate Slow Query Detector
  • (7) Build a oAuth 2.0 Server

Books