The finale schedule will be revealed at least 2 weeks prior to the event.
Schedule day 1 - Workshops (afternoon only)
Welcome & registration
Introduction to Vue.js
Why? Well, it has a short, sweet and gentle learning curve. It's a pleasure to develop in the reactive, modular and flexible environment. And the documentation is excellent!
Learning Vue.js is fun, it's like playing with LEGO blocks. In this workshop you will learn how to build a single page application (SPA) with Vue components and routing.
- Node.js version 8.9 or above (8.11.0+ recommended)
- Your favourite IDE
Intro to React Hooks
Join this brand-new workshop to learn the basics about the hot new thing: React Hooks!
Through a set of exercises, you will get to play with a few of them, and by the end you should be confident enough to write your own hooks and use the existing own with the best practices!
Knowledge of react is required, but just the minimum such as: state, props, and lifecycle hooks. Also you should know how to clone a git repository!
Get blazing fast at coding - React and TypeScript
During this workshop we’ll be working on an app that shows off the fastest car on the planet and that is built on React with Typescript.
Participants will be given a broken version of the app they’ll need to fix before they can start implementing TypeScript fully in it.
Then they will add missing features as well.
By the end of the Workshop, participants will have a better understanding of
- React and its core features
- patterns and best-practices in React
- how to implement TypeScript in React
Hackages mentors will be there to guide them through this session.
- Have Node JS and GIT installed on your computer
Access control in idiomatic React
In this workshop, we'll extend an idiomatic React app by using OAuth to access protected backend resources. I'll explain design decisions and implementation, exploring at each step, how to weigh security guarantees against ease of implementation, ensure the code remains idiomatic, and, provide an acceptable UX.
Cookies and security tokens are competing techniques for providing authentication context. Although we discuss when one should be favored over the other, the focus of the workshop is on consuming APIs protected by JWT access tokens. These should be obtained securely from an OAuth 2 authorization server. In line with the IETF OAuth Working Group’s Best Current Practices, we use the authorization code grant with PKCE.
Apart from React, the main technical components for this workshop are
- AWS Lambda
- AWS API Gateway
We will discuss alternatives for each and examine the forces that would push the web app design to another technology.
Participants should bring a laptop with an environment in which they feel comfortable writing React applications. An AWS account is not needed, but is useful for those who want to set up their own backend.
In order to speed up setup, participants can clone the git repo at https://github.com/softwarewolves/riders and run npm install.
The objective of this workshop is to add the features of https://ride-sharing.ml to the cloned application.
Schedule day 2 - conference day
Breakfast and registration
Keynote: To all the code I've loved before
Whether this is your first year as an engineer or your tenth, our origin stories are more similar than we realize.
From writing a “Hello, World!” program, to getting your hands into some CSS for the first time, and everything in between, the code we write shapes us. This is a love letter to all the code I’ve written, read, reviewed and (sometimes) loathed.
The laughs and frustrations in this talk are shared by anyone that’s ever had to debug a missing semicolon, thought they accidentally wiped out a production database, or any number of the countless shenanigans we put ourselves through.
When you watch an ad on the web, there's actually a lot going on behind the scenes. There's an automated auction that takes place in real time, involving a lot of server-to-server communication. Once there's a winner, a lot of parties want to be in the loop while that ad runs, and they all introduce their own client-side code.
DoubleVerify is one of those parties. As the leader in digital performance solutions, the company creates value for media buyers and sellers by bringing transparency and accountability to the market, ensuring ad viewability, brand safety, fraud protection, accurate impression delivery and audience quality across campaigns to drive performance.
Based in Ghent, the Belgian branch focuses on two parts of DoubleVerify's business. Firstly, we integrate measurement technology into video ads. Secondly, we automatically detect and fix issues with existing ads.
As we've been doing this for many years, we'll share some key learnings that we've accumulated in the process. We'll also discuss the next iteration of our stack, as a sneak peek of what we're working on.
Let's explore the advantages of these and see what can be done and how practical these developments are.
Let's compose Web components
Creating web components shouldn't be limited to extending classes, it should use native solution but no magic that we can't understand.
What if instead of classes, we could create web components using only functions and being able to compose some of them together. In this talk we are going to see how we can use a library and native solutions like template literals for defining web components.
From 120 to 800 MB of RAM usage in 5 minutes. A story of plugging memory leaks.
'Recently your app has slowed down, are you working on a solution?'
Having a well performing app is a crucial part of creating successful product - it might not be a key differentiator among other products, but it could be the reason for your users to leave you. When speaking about performance, we usually tend to focus on how fast we get into interactive mode. What happens then?
What if your average user spends hours, days or even weeks without reloading your SPA?
I'd like to share a story of how we came to the point we annoyed our customers with downgrading performance over time, how we identified our mistakes, created regression tests checking for memory leaks in different scenarios and, finally, fixed those problems.
And also how a random update to 3rd party tool can literally destroy experience of your users :)
Back to the future of JS II: Beyond what we can foresee
Do you want to know what the next exciting JS features that you don't even know you need? So, let me show you three proposals that may change the way you write code as the spread operator did. These features are:
- Pattern Matching
- Pipeline operator
- Binary AST
Browsing NPM packages more effectively with Code Compass
In this talk I will showcase a new search engine specifically tailored to finding and browsing software packages. By leveraging machine learning techniques and the millions of source files available on GitHub, our engine can tailor its search results to your specific project dependencies, so that the results you see become more relevant and more actionable.
Come listen and find out how to explore the universe of NPM packages in entirely new ways.
TDCD: Test Driven Component Development
In this talk you’ll learn how to drive a component's behavior, agnostic of presentational concerns, with tests. You’ll learn how to focus on look and feel - visual refactoring - once you have a passing test suite. You’ll learn that it’s possible to build an entire functioning web application, and verify that it works, without ever looking at it in a browser.
Join me as I share a technique that has fundamentally changed how I build React Applications.
Passwords are so 1990
Authentication is hard, that’s why we tend to stick to the principles and techniques we know. The web however is evolving in a rapid pace, and so are the ways we should handle authentication. This talk will take you trough some of the modern ways to authenticate.
Going from a token based approach for single page applications and APIs, to passwordless biometric authentication using the web authentication API. Why keep on typing passwords when there might be a better alternative.
We’ll cover some of the pain points you might encounter while keeping your modern apps secure and have a quick look into the future.
Machine learning for web developers
Machine learning is the thing that puts the wow-factor into your application. And just like any other wow-factor, people get used to it and start to expect it.
Machine learning is the domain of data scientists, but is getting more and more important for developers too. After all, you have to put this into your app.
In this talk we'll go through the basics of machine learning and illustrate those concepts with just a bit of tensorflow.js. This is a talk by a developer for developers
Taking your Angular application to the next level
Every three to four months Angular does a major update to their platform. As developers we have the luxury of a constant flow of new updates and features to improve our applications.
During this talk we will take a few steps back and have a closer look at which upgrades can have a big impact on your application.
We will focus on two components: lazy loading and web components. Those components can have a major impact on your application.
The search for App-iness : Progressive Web Apps
Progressive Web Apps combine the best of the web and the best of apps. They load quickly, even on flaky networks, have an icon on the home screen, can re-engage with users by sending push notifications, and load as top-level, full screen experiences.
In this talk Jamie Maria Schouren explains the what, why, and how of Progressive Web Apps, her own quest in search for "app-iness" and with code examples and real life use cases, shows why PWAs are the future of the web!
Transforming your hand drawings into HTML with AI
AI is becoming more and more commonplace in our lives: from face recognition to authenticate with your laptop or smartphone, creating your shopping list using your virtual assistant, or getting personalized recommendations in Netflix or your online web shop of choice.
As a developer this magic may feel intimidating and something you wouldn't touch with a 10-foot pole, unless you're a data scientist or any other sort of druid.
In this session we'll look at how you can easily infuse your application with intelligence without knowing anything about machine learning. We'll use AI to convert hand-drawn designs and convert them into HTML code.
Making React applications work for everyone
React has quickly become one of the most popular front-end libraries for creating web applications. But how much do we know about how well these interfaces work for *all* of our users, including those with disabilities or impairments?
In this session I will discuss how React provides a basic foundation for accessible user interfaces as well as how to go beyond the out-of-the-box features to build more inclusive web apps.
I’ll cover common obstacles in designing and building accessible apps, helpful tools for testing, and share my own experience auditing an existing react app.
Contributing your time and effort to Open Source Software
There's a problem though, not everybody knows how to spend their time and effort in contributing to it. I'll show guidelines and steps that you should take when helping on Open Source Projects, based on Github.
Don't make component abstract art
A (vue|react|angular) component automatically is a level of abstraction, which also means you can get into situations where it becomes impossible to understand what's going on. By following some sane rules and understanding what powers a component, we can make better components that are easier to reuse.
I'll go over the different levels of abstraction (prop, slots, components, mixins, component as XXX, css). Then also go over our more detailed approach on data fetching within a component.
The talk of course won't just be "this is what you can do", it'll include our journey from hard-to-reuse and where our solution to most questions was "copy paste and change" to "oh you can do it like that".
I plan to mix how this works in Vue, but also React and Angular; because it's interesting to compare things that come out of the box in one, to things you need to add manually otherwise.
Automating your NodeJS software delivery
Developers don’t get paid to write code. Instead, we're expected to deliver working software in production. How does your team turn source code into running software? And how do you make sure it stays working in all environments, including production, to environments like Kubernetes?
Atomist expands the range of development automation past what most of us have currently seen.
"But my deployment process is unique!" No problem, we can solve this, in code, in TypeScript! How about having production or deploys through a single click? Build failed? Here’s a message in Slack with a detail on what wet wrong.
Or how about auto-formatting code so that you'll never forget. Let’s scale up ourselves, with Atomist.
Building dumb sh*t
We tend to see our jobs and our work as developers as the pursuit to help the world and build useful things for other people because that's what we are taught.
When we learn something we make to-do lists, we make useful things. In this talk I am gonna try and show you the value of making dumb things, making useless things.
Implementing and studying some IoT cases using LoRaWAN, we identified a pattern that manages metadata in an environment with very low bandwidth. We have built a framework called Ding.js based on this pattern to aid the development of IoT applications. The goal of this framework is to speed up setup time of many IoT solutions.
Reception + evening snack + networking
See you next year!