Jfokus Training

About Jfokus Training

Get taught directly by the experts and interact with peers in an engaging informal environment. These are intensive, deep dive training sessions designed for advanced IT professionals which incorporate expert-led presentations.

Kent C. Dodds

2 Days: AngularJS

Kent C. Dodds, Alianza Inc


AngularJS is the most popular frontend framework today by a long shot. This is true because of all of the amazing things Angular has to offer for web applications. With a dedicated team from Google and a very strong, friendly community, Angular will remain popular and relevant for a long time. The goal of this course is to give you a deep dive into many of the things that makes Angular so great and helps developers be so productive with it. By the end of this two day deep dive training, you will have built an entire web application from scratch and deployed it to the World Wide Web! You'll be begging for more when we're done.

When: 5-6 February 2015

Where: Stockholm, Sweden

Language: English

Format: Bring your own laptop

Price: 13 500 SEK

15% discount when booking before 31 December

All prices excl. Swedish VAT and incl. lunch

Register here

Intro to core concepts

  • templates - Angular?s View Layer
  • modules - The Angular module system
  • directives - Your very own HTML
  • filters - View specific formatting helpers
  • controllers & scope - The ViewModel
  • providers, factories, services, values, and constants - The business logic
  • module dependencies - Using third party libraries


  • the DDO (directive definition object)
  • parent scope, child scope, isolate scope
  • attributes, Bindings, and Expressions


  • angular-ui-router module
  • state in the URL
  • resolving dependencies into controllers
  • state hierarchy

data model

  • js-data-angular module
  • REST


  • keep your HTML DRY
  • validation and messaging
  • angular-messages and angular-formly module


  • a true single page app
  • token based authentication

And everything else

  • application structure
  • build process
  • unit testing (directives/services/controllers)


  • interface with non-angular third party libraries
  • when/why/how to step outside of angular

Introduction to

  • Firebase
  • Ionic Framework - Mobile hybrid applications with AngularJS
  • Protractor
  • angular-translate module
  • angular-aria module


Axel Fontaine

2 Days: Architecting for Continuous Delivery and Zero Downtime

Axel Fontaine, Boxfuse GmbH

Continuous Delivery is all the hype these days. This training makes it a reality. We start with an overview of what Continuous Delivery is and how it can help you. We then quickly dive into the details. You will learn what it takes to architect a Java application so that it can be delivered continuously into production, with code, configuration and database delta, multiple times a day, with zero downtime.

Buckle up! This class is intensive and hands-on. You build an entire Java web app to the point where it deploys continuously, with zero downtime. We tackle the hard problems with a battle-tested approach you will be able to apply immediately.

When: 5-6 February 2015

Where: Stockholm, Sweden

Language: English

Format: Bring your own laptop

Price: 13 500 SEK

All prices excl. Swedish VAT and incl. lunch

Register here


This training assumes a good understanding of software architecture, the Java language, Linux and relational databases in general.


Over the course of these two days, we will cover the following topics:

Introduction to Continuous Delivery

  • What is Continuous Delivery
  • Where does it fit in
  • Prequesites techniques

Automated Testing

  • Tests as risk reduction
  • Fast feedback by test categorization
  • Acceptance tests and the page object pattern

Continuous Integration and Releases

  • CI Server and Artifact Repository
  • Rethinking versions and releases
  • Automated deployment

Configuration and Environments

  • Dealing with multiple environments
  • Environment Detection
  • Rethinking configuration

Database Migrations

  • The challenges with database changes
  • Database Migrations
  • Pitfalls and alternatives to rollback

Keeping software releasable

  • Keeping software releasable at all times
  • Features toggles
  • Expand and contract

Zero Downtime

  • The challenges with state
  • Rethinking Sessions
  • Integration with Load Balancers

Immutable Infrastructure

  • The future of application delivery
  • Self-identifying software
  • Immutable Infrastructure


Richard Warburton
Raoul-Gabriel Urma

2 Days: Modern Development with Java 8

Richard Warburton, Monotonic Ltd

Raoul-Gabriel Urma, University of Cambridge


Java 8 isn't your parent's Java anymore. It is the largest update to Java in its history. It's a very exciting time. Some of the best ideas from functional programming are migrating their way into Java 8. This means easier to read, more flexible code that scales to multicore. At the end of this course, you will be ready to use Java 8 on your day job and be familiar with the cutting edge programming approaches which allow you to write more flexible and concise code.

When: 5-6 February 2015

Where: Stockholm, Sweden

Language: English

Format: Bring your own laptop

Price: 13 500 SEK

All prices excl. Swedish VAT and incl. lunch

Register here

Lambda Expressions

  • Why Java 8?
  • Behaviour Parameterisation
  • What is a lambda?
  • Functional interfaces: where to use lambda expressions?
  • Method references: first-class functions in Java 8
  • Advanced details


  • Collection Processing
  • Stream operations and patterns
  • Stream Optimization


  • Grouping and partitioning
  • Collection Operations
  • Arithmetic collectors
  • Advanced Queries
  • Mutable Reduction

Easy Data Parallelism

  • What is Data Parallelism?
  • Why is this important?
  • Parallelising your streams
  • Parallel Gotchas
  • Decomposition performance

Testing & Debugging Lambda Expressions

  • Unit testing lambda expressions
  • Debugging with laziness
  • Stack traces

Default and static methods on interfaces

  • Motivation for default methods
  • Static methods in interface
  • Useful default methods
  • Patterns for default methods
  • Resolution rules

Enhanced Design with Lambdas

  • Execute around: resource handling
  • Deferred execution: Logging
  • Design patterns

Date & Time in Java 8

  • The problem with existing date and time libraries
  • The core classes: LocalDate/LocalTime
  • Common API Patterns
  • Timezones

Optional data types

  • The problem with null
  • How Optional improves upon null
  • How to use Optional in your code

Enhanced Concurrency with Lambdas

  • Introduction to Concurrency
  • Event Driven APIs with Callbacks
  • CompletableFutures
  • Concepts of Reactive Programming




Back to the top of the page