This course introduces experienced Scala developers to the reactive Akka toolkit. The combination of hands-on work and exercises in this course provides the perfect environment to learn to use Akka with Scala.
Intermediate - knowledge of and practical experience with Scala is assumed
March 14th and March 21st, 2 days - 8 hours each day, plus breaks
Attendees bring their own laptops with Java 8
Extensive hands-on coding - attendees develop a workshop case study and produce a fully functional application that is event-driven and resilient
Scala Engineer @ VirtusLab, with a long-standing inclination towards git hacking :) Currently maintaining git machete (https://github.com/VirtusLab/git-machete), aka "probably the sharpest git repository organizer & rebase workflow automation tool you've ever seen" as a hobby project.
Talk & Workshop - suspended
Kotlin coroutines have gained a lot of traction since their stabilization. They are a lightweight, elegant and convenient solution for most of the asynchronous processing tasks. Using coroutines, developers can write code solving concurrency problems without drowning in the flood of callbacks. Since coroutines were stabilized only a year ago, there is a really good chance that your current project is based on some other library or framework for asynchronous processing. Does it mean that you cannot benefit from elegant, easy to reason code that coroutines bring to the table? In this talk, I am going to show you how you can bring powers of coroutines into your mature and borning framework. Or maybe your case is different and your project is already using lots of ‘async’s and ‘launch’es. Then you will see superpowers you can use to make your asynchronous code more readable and less repetitive.
No previous knowledge of Kotlin needed.
28.03 - talk (30 min) & workshop (4h)
29.03 - workshop (4h)
Laptop with any version of the IntelliJ IDEA environment and Java installed.
Day 1: Virtusity talk "Superpowers for tailoring asynchrony or how to customize your coroutines" & workshop for beginners - "Introduction to Kotlin".
Day 2: Workshop "Kotlin: the deeper look". Follow up workshop to the introduction to Kotlin.
Paweł Marks is Kotlin Tooling Engineer at VL. He is also the main maintainer of Eclipse Kotlin Plugin and co-organizer of Kraków Kotlin User Group. He loves to get to know new programming languages, compare them and rant about them. Privately he is interested in linguistics, history and enjoys surreal memes.
Be faster by getting rid of your mouse.
Find Chrome tabs in the ocean of hundred opened windows in seconds.
Take a walk and let your long-running tests call you when they fail.
Use fuzzy search to find tabs, windows, files, code and terminal commands.
This talk will show a lot of less known productivity tips & tricks for macOS, IntelliJ and shell.
Medium: minimal experience with IntelliJ and command line. Recommended familiarity with macOS, but alternatives for other operating systems will also be shown.
29th November at 3:30 p.m. (45minutes)
Software engineer @VirtusLab with a full stack background. Uses JVM tech daily. Kotlin fan, DevOps wannabe, macOS and IntelliJ tooling nerd.
Introduction to GraphQL (based on the example of Apollo Server) and comparison with REST. The workshop is designed as an introduction to the topic of GraphQL. It’s an elemental workshop for people who have never tried GraphQL before. It isn’t mandatory, but it would be very helpful to have at least a basic idea of TypeScript.
Introductory - no previous knowledge of GraphQL,
basic knowledge of TypeScript (https://www.typescriptlang.org/docs/handbook/typescript-in-5-minutes.html)
1 day - 4 hours of classroom time
All participants are required to bring their laptops. Setup requires IDE of your choice with the latest node LTS and yarn.
We are going to use web-based IDE (CodeSandbox) with a pre-configured environment. However, participants could use the IDE of their choice (Node 10+ and yarn/npm is required).
Software Engineer at VirtusLab
Software Engineer at VirtusLab
From the dynamic and chaotic world to the static and structured one. How to leverage TypeScript to make our work as frontend developers more enjoyable and deliver bulletproof applications to the clients.
Introductory - no previous knowledge of TS is assumed, intermediate level in JS
5th-6th September, 2 days - 4 hours of classroom time each day, plus breaks (15:00 - 19:00)
must bring their own laptops with VSCode and Node installed
Beyond education - students code through a training case study and discover how TypeScript makes their work easier and more enjoyable
Frontend Engineer with Fullstack and Backend past where he left part of his heart. TypeScript enthusiast and advocate that introduced it in many companies and projects. Believes in Static Typing, Functional Programming and Domain Driven Design as a future of programming. Enjoys building scalable frontend architecture base on React and Redux stack that utilises types to the fullest. Spends his free time exploring wild frontend ecosystem and new programming ideas.
Medium - minimal knowledge of Python and SQL is required. No knowledge of Spark is needed.
August 22th-23th, 2 days - 4 hours of classroom time each day, plus breaks (15:00 - 19:00)
Students must bring their own laptops with Java 8 and conda
Learn by doing: have access to all materials and solve exercises on your own with a help from experienced trainer. Discuss new concepts and solutions with other participants.
a software engineer and Apache Spark trainer at VirtusLab with background in Computer Science and Statistics, focused on theoretical and technical aspects of leveraging Big Data in Machine Learning. As a PhD candidate he conducts his research in the field of large, dynamic Complex Networks. In his spare time likes to climb, take photos and explore Cracow art museums.
Microservices world may seem overwhelming at the first time. CQRS, Event Sourcing, message queues – it may be hard to familiarize yourself with all that stuff at once. Lagom is a straightforward way to implement and deploy your first application. With it, you can build your environment, including Akka, Play, Cassandra and Kafka with just a single command.
29th January at 4 p.m. (4 hours)
Familiarized with Scala Futures and Akka Streams
Randori session - participants will develop a single project sequentially, in 10-minute periods.
Software engineer at VirtusLab. Builds reactive systems, mainly based on Scala, Lagom, Kafka and Cassandra. Formerly C++/real-time systems dev.
The power of Scala’s type system, unleashed – advanced object functional programming, implicits, and more. Leverage rich language features to create well-designed libraries or DSL’s, utilizing proven best practices.
Advanced - knowledge of and practical experience with Scala is assumed as taught in Lightbend Scala Language - Professional
5 - 6 February
2 days - 4 hours of classroom time each day, plus breaks (3pm-7pm)
Students bring their own laptops with Java 8
Hands-on mastery - attendees code through workshop case study and explore how to solve the toughest Scala challenges in their own work
Scala programmer since 2011, Scala Trainer since 2014. Dabbles in all kind of technology, mostly JVM-related.
Virtusity Talk & Workshop
Functional programming helps to create clear, concise and less error-prone code. That’s why in the world of rapidly growing codebases good understanding of fundamental concepts help to create solutions that will be easier to read and maintain. During the course, participants will learn functional programming essentials as well as practical techniques. After the course, you will be able to understand functional programming principles and which Java features promote their usage in a daily job.
Intermediate (Java knowledge is required)
27-28 February, from 3 p.m. - 7p.m.
The attendees have to bring their own laptops with Java 11 and IntelliJ (alternatively other preferred IDE) installed.
Theoretical background followed by coding and refactoring exercises.
Software engineer at Virtus Lab working daily with JVM technologies - mainly Java and Kotlin. Domain-driven design passionate, focused on creating well crafted and tested solutions.