Schedule

The finale schedule will be revealed at least 2 weeks prior to the event.

Schedule Day 1 - May 29th

Workshops

08:30 - 09:00

breakfast & registration

Morning Parallel Workshops
09:00 - 12:00

Streaming all the data: JavaScript for real-time data and video stream processing

In this workshop you will get a hands-on technology preview of World-wide Streams (WWS), a new low-latency stream processing platform developed at Nokia Bell Labs.

Through the flexibility of JavaScript (and assisted by TypeScript’s friendly type checker) you will be creating your own scalable, low-latency IoT data and media pipelines in no time. In this session, you will process IoT sensor data on the fly and analyze the video stream coming from your own webcam using our built-in image processing algorithms.

 

Workshop participants will get access to a hosted version of the platform. Just bring your laptop with a modern browser.

For more information, please visit https://worldwidestreams.io

Enterprise JavaScript for Beginners

In this workshop, you will learn how enterprises such as Oracle, SalesForce, IBM, and PayPal solve problems such as concerns around architecture, data visualization, internationalization, and accessibility.

In particular, you will be introduced to free and open source tools and technologies created by Oracle for developing Mobile and Web applications in JavaScript.

At the end of the workshop, you will be able to set up and develop stable and reliable enterprise JavaScript applications, in the same way as done at Oracle, all for free and all by means of open source tools and technologies — you will also have been introduced to free and open source graphs and charts that you can use to visualize data retrieved via REST and WebSocket. 

Do you want to be able to create really attractive and business-friendly Mobile and Web applications? Join this workshop and in 3 hours you will have learned everything that you need to know — whether you are a complete beginner to JavaScript or an expert JavaScript developer.

Introduction to Vue.js

Vue.js has been on the rise and is mentioned as the current hot JavaScript Framework.

Vue is simple to get started, scales to large cases easily, has everything you need end to end to build small to large scale apps.

In this workshop we'll kickstart you by using the Vue.js tools.

You'll become familiar with the Vue.js syntax to learn how to do databinding using directives.Components will be added to make sure our applications separate functionality nicely.

This workshop targets people starting with Vue.js and will give you hands-on experience and a good basic understanding of Vue.js.

Introduction to advanced RxJS

During this workshop you will receive a hands-on practice on advanced RxJS topics. RxJS is a great library for building scalable, reactive user interfaces.

First we will learn how to think reactively using observables and most important RxJS operators. Then we will understand the difference between Hot and Cold observables and how to multicast. We will implement higher order observables to see their power. Finally we will take a closer look at error handling and debugging in RxJS.

For more information visit: angular-academy.com

12:00 - 13:30

Lunch and registration afternoon workshops

Afternoon Parallel Workshops
13:30 - 16:30

Accessible Microservices with Node.js and Docker Ecosystem

This workshop builds on the best practices of microservices architectures, and investigates how to apply these best practices in Node.js and Docker.

Participants will learn how to;
* apply the best practices of microservices
* structure microservices applications and break down a monolith into a microservice
* set up Docker and create Docker images for microservices
* use Docker Compose for managing services

The workshop is also a unique opportunity to experience microservices development in a team setting — attendees will organize in groups to build up a microservices application from the ground up and see the challenges of integration and working in a distributed application.

Requirements:
Participants should have a basic knowledge of microservices and Node.js. No knowledge or practice of Docker or cloud environments is required. Participants should bring either Mac or Linux laptops. While the technologies we use are also available on Windows, no guarantee can be made if they will work coherently on Windows.

Installing latest versions of Node.js and Docker and Docker Compose beforehand will save us time within the workshop.

 

Introduction to clojure script: 10x more fun with cljs

What is not a myth: after a few decades of tampering with js, jQuery, angular (ouch) and well, even react, doing front-end development in cljs gave me back (10x more?) fun doing front-end development again. Once npm interop is setup well, the development itself is - exaggeration alert! - a odoriferous breeze of pure joy.

I wanted to share this with you in a hands-on workshop, where we'll be using the classic Tetris as starting point, exploring our way through clojurescript as we go. 
It will be about how to make resilient applications, what tooling to use in cljs, how to do typing without a type system, optionally how to solve the expression problem but certainly how to convey data around a one-way loop, making the data flow very brain-friendly.
 
After this workshop, you'll have real hands-on experience with building a cljs app. You'll know how to setup a cljs project, how to make interop with npm libraries work (the hardest part!), what cljs syntax looks like, how a 'components' is actually just a function as any other function, how your code is automatically optimized using the google closure compiler and how to monitor your app state inside your app in cljs.
 
The workshop targets people willingly to leave their comfort zone and try something different. The only prerequisite is basic programming skills combined with an eagerness to learn. It is preferred to have your editor of choice already configured to allow for clojure code projects. 

Clojure has very decent to excellent support in emacs/spacemacs, intellij (cursive plugin), netbeans (enclojure plugin) and  eclipse (counterclockwise plugin).

Async Programming in modern JavaScript

Some people call JavaScript the “callback hell”. Granted, some years ago this has been true to a certain extent. However, JavaScript has learned a lot of new tricks and asynchronous code does not look ugly anymore. In this workshop, Rainer Stropek introduces you to modern concepts for asynchronous programming in JavaScript. You will learn how to use Promises, see async/await in action and apply these concepts in TypeScript, too.

Additionally, Rainer will present the fundamentals of reactive programming with RxJS so that you understand similarities and differences compared to Promises and async/await. In the workshop you will see demos for the server-side (Node.js, MongoDB) and the client-side (jQuery, Angular).

Prior knowledge:

You should have at least basic knowledge of JavaScript/TypeScript and a good understanding of general web programming concepts (e.g. HTTP, Web APIs). You do not have to be a JavaScript/TypeScript expert to benefit from this workshop.

Prerequisites:

If you want to follow along with the samples, install the following software on your laptop (latest versions):

  • Visual Studio Code with the following Plugins
    • Angular Language Service
    • HTML Snippets
    • npm
    • REST Client
    • TypeScript Hero
  • Node.js
  • Globally installed tools (npm install -g …)
    • @angular/cli
    • typescript

Fun with Microcontrollers and JavaScript (IoT)

These days, it is quite simple to use JavaScript on a microcontroller. Various packages are available for Node.js which enable interaction with hardware components. With the creation of Tessel, there is even a platform dedicated to the use of JavaScript for IoT applications.

In this workshop, we will explore how basic electronic components can be controlled with Node.js. We will wire some buttons, LEDs and a couple of servo motors on a Raspberry Pi. To conclude the workshop, you will put your newly acquired knowledge to the test in a small challenge.

How fast can you make the Raspberry Pi put a pen in a bottle?
No prior experience with microcontrollers is required.

As usual, we only have one rule: don't blow anything up! 
 

Schedule Day 2 - May 30th

Sessions

08:30 - 09:00

Breakfast & registration

Morning Keynote
09:00 - 10:00

Keynote: Conquer your impostor syndrome with JavaScript

Impostor syndrome can be defined as a collection of feelings of inadequacy that persist even in face of information that indicates that the opposite is true. It is experienced internally as chronic self-doubt, and feelings of intellectual fraudulence.”
— Caltech Counseling Center

Have you just started your development career and you are overwhelmed by how little you know? Are you a seasoned veteran but you secretly fear that it’s a matter of time before you lose your edge in this fast-paced industry? If the answer is yes, you may be suffering from the impostor syndrome, and you are not alone.

Let Armagan walk you through his own story of overcoming the impostor syndrome, and learn how JavaScript is a vital tool in helping you build not only apps but also confidence.

In this keynote, Armagan will present a variety of applications you can build by only knowing JavaScript. Whether it’s a futuristic brain-computer interface, musical instruments, or a whole new way of interacting with your computer; JavaScript lets you build your dream in the most concise way possible and it will be your best ally in battling the impostor syndrome.

10:00 - 10:45

BabylonJS

The Web Graphics Library, or WebGL, is a JavaScript API designed to render interactive 2D or 3D computer graphics in the browser, without the need for a plug-in. But with the great powers of WebGL comes a lot of complexity for the developer.

Babylon.JS is an open source JavaScript framework for building 3D games and experiences for the web, removing all the complexities of WebGL, Web Audio or even WebVR.

In this demo-packed session you'll discover how to use Babylon.JS for building interactive 3D experiences in the browser and your VR headset.

Unleash your web skills on native!

Did you know you can use your knowledge of HTML, CSS and JavaScript to build truly native apps for iOS and Android with NativeScript?

I’ll explain what NativeScript is, how it compares to other frameworks and demo how easy and fun it is to get started and how to make use of native capabilities.

Do you want to build your own personal assistant like Siri? I'll show you how!

10:45 - 11:00

Coffee break

11:00 - 11:30

Scalable Angular Architecture

Building scalable software can be a challenging task. When we think about scalable front-end application, we can think of increasing complexity, more and more business rules, growing amount of data loaded into the application and large teams often distributed around the world.

In this talk I would like to present high level recommendations of well designed front-end architecture followed by implementation examples in Angular framework. Angular itself is a quite opinionated framework, forcing developers to do things "proper" way, yet there is also a place where things can go wrong.

Starting from proper abstractions between application layers, modular design and lazy loading to unidirectional data flow and predictable state management attendees will see how all of those help to scale front-end application.

There are many talks about mentioned techniques and patterns, but presented independently. The goal of this talk is to show how those things can fit together to provide solid and scalable architecture for Angular applications.

Motion in React

As client side applications are growing richer with interactivity, motion is entering the conversation as a critical part of user experience. With all the languages, tools, and APIs available, such as CSS Transitions/Animations, GSAP, and React Transition Group, how do you decide to choose one over the other?

This talk will be a comparison of several approaches to implementing motion in React, from using CSS-in-JS tools like Styled Components, as well as animating components with vanilla JS, functional libraries, or libraries more closely tied to the ecosystem like React Motion.

11:30 - 12:00

The value of mutants in cljs: about their state and identity

With many languages that compile or transpile to Javascript moving towards a class-oriented style of programming (like Java and c++), clojurescript takes another route. Having polymorphism à la carte, a range of typing concepts to choose from, golang-like programming as a library and many other features, this homoiconic, dynamic, general-purpose, arguably* mainly functional LISP takes programming to another level of expressiveness.

We'll work our way through the core ideas and concepts of clojure(script) in the first part of the talk. Although being an introduction, some advanced features will be live coded to make certain language choices more understandable and easy to grasp.

In the second part of the talk, we will explore what value, state and identity are about. We'll dig into different ways of handling state in clojure(script), we'll discover how immutability can be very performant and memory efficient and we'll find out that proper (immutable) state management is actually brain-friendly.

* Alan Kay, who tossed the term object oriented, doesn't know any other language besides LISP and his own Smalltalk that are object oriented (at least, he didn't back in 2003)

Web VR/AR - using our front-end skills to create mixed reality experiences on the web

VR and AR are happening everywhere these days - and yes, even on the web. 

In this talk, we explore how we can use the skills we already master, to create these experiences effortlessly.

- Short history of VR and creating immersive experiences. Spoiler: it's not as recent a trend as we all like to believe

- Use cases of VR. We look at the many applications in diverse business domains

- To apply our knowledge of developing great user experiences on the web to mixed reality, we should just start making apps with it! With webVR/AR, we barrier to entry is very low.

12:00 - 13:00

Lunch

Afternoon keynote
13:00 - 13:45

How JavaScript helped my wife turn on the lights

Some years ago we moved into our new home. As a techie I've installed a domotica system. Six years later my wife still can't find the right button to have more light above the dining table without killing all the lights in the living room...

So how do you go from knowing that the lightning system has an input port to asking a digital assistant to lower the screens and turning on the lights in the kitchen, only using JavaScript? 

In the session, I'll walk through all steps and hope that at the end of the session I can dim the light without touching anything.

13:45 - 14:30

Running Node.js in a Container

In this talk, we'll be presenting what a container is and why you'd want to use it.

We'll walk trough a practical example of running a node.js application in a Linux container, all the way from the first line of code to hosting it in the cloud.

Modern Web Performances

You probably heard stories about applications losing their users due to slowness. What are the issues they ran into? How can you prevent such a scenario in your web application?

During this talk, we will examine modern web techniques for building performant applications. Moreover, we will examine the concept of PWA (Progressive Web Apps) and how this could help you build reliable, fast and engaging applications with extra capabilities like offline.

Last but not least, we will dive into the toolset that helps you measure all these metrics on your application

14:30 - 14:45

Coffee break

14:45 - 15:15

Techniques to scale UX teamwork

On any meet-up or conference I attend, I overhear the same thing: developers and designers struggle to collaborate every single day.

Although we all strive for the ultimate user experience, the way we approach it is very different. The goal of this talk is to fix this by showing easy steps everybody can implement in their daily office life. No more vague ‘talk to each other’ advices!

There are differences in how we are thinking. Tested on several projects, I will show applicable ways to improve the collaboration between developers and designers.

On this basis, attendees will learn how we as designers and developers can work smoother with each other. For better results and more effective teamwork, we'll take a look at which tools, processes and rules can help to scale a UX team and how a shared language can improve our work.

We'll take a look at how to see UX from different perspectives and why it matters, even to you as a JavaScript professional. But most importantly more to create a enjoyable work environment for everybody.

What's next for JavaScript

With the release of ES2015 (“ES6”) a lot has changed in JavaScript-land.  Lesser known (and less feature rich) releases are the ES2016 and ES2017 releases.

This talk not only touches these two new releases but also digs into the brand new ES2018 release, and finally looks forward at what's to come next for JavaScript.

15:15 - 16:00

Baking security into DevOps - a tale of hunting down bugs before breakfast

Do you know that 90% of all vulnerabilities can be prevented by introducing security in every step of your software development lifecycle (SDLC)? Get ready to join Wouter on his journey on how he introduced security into the SDLC at a company.

During his talk, Wouter will introduce you to how development, operations and security can be fitted together into “SecDevOps”.

The talk uses practical examples so that you will be able to experiment with “SecDevOps” yourself and know what you should pay attention to when implementing this into your own SDLC.

Demystifying the future of CSS with sparkles of JS

CSS as a language is at the brink of a great revolution. Once such a closed and magical language, it will open up to you and your creativity in all its glory.

CSS will become an easy to expand and polyfill language, all while keeping the performance at an up-high. All hail Houdini!

16:00 - 16:15

Coffee Break

16:15 - 17:00

A Software Architect's Approach towards SPA-Based Microfrontends

Microservices are popular as they allow a
comprehensive solution to be split into smaller and simpler applications.
Many people are left wondering how single-page applications fit into this.
This session taps a software architect's perspective to answer this
question.

Typical goals one might have when planning a Microservice-based
architecture are first outlined. Using several examples and case studies,
we explore different approaches, such as leveraging npm packages, (project)
monorepos, web components, plugin architecture, or simple ideas like
hyperlinks or even iframes.

By discussing the pros and cons of each
approach from the perspective of an JavaScript developer you will see which
approach works best where. The session ends with a completed matrix to help
you select the right solution for your specific project
.
 

Fun with Bluetooth

Time for JavaScript to get physical!

With WebBluetooth the browser can actually take control of all kinds of physical devices in the real world like lightbulbs, robots and even drones. And nowadays you can even run JavaScript straight on microcontrollers and even little Bluetooth beacons.

This talk will teach you the basics that you need to get started and give a peek at some more advanced topics like building your own Bluetooth devices using just JavaScript.

17:00 - 17:45

Angular, React, Vue JS? Blazor!

The new experimental web framework Blazor is extending the reach of .NET and C# to the browser.

This is made possible by the new web standard WebAssembly. By using C#, Razor, and HTML in the browser you can now use your existing skills for browser-based development. 

Blazor promises to greatly simplify the task of building fast and beautiful single-page applications that run in any browser.

In this demo-driven session, you will get a good understanding of the capabilities and opportunities of the new technology WebAssembly in combination with Blazor.
 

17:45 - 20:00

Reception + evening snack + networking

See you next year!