
ODESSA JS 2017
It’s time to meet old and new friends
Registration
1-2 July / The hotel "Black Sea (“Chernoye more”), the park of Shevchenko" / Summer. Sea. JavaScript
30 July / ул. Bunina, 1 (БЦ Негоциант), office Lohika / pre-party OdessaJS
1 July / TrueMan Hot Boat / afterparty OdessaJS
30 July / ул. Bunina, 1 (БЦ Негоциант), office Lohika / pre-party OdessaJS
1 July / TrueMan Hot Boat / afterparty OdessaJS
Speakers

#1 Unleashing the power of GraphQL and React
GraphQL is awesome! After only a year it has got a lot of attention from the community. Many implementations have emerged and it’s just getting better. Is GraphQL right for you? Is it a query language or runtime? In this talk I am going to take you from 0 to hero. ;)
#2 Angular Testing Recipes (v4+)
In this talk, we will cover the most common testing scenarios to use while developing rock solid Angular
Applications, like: Components, Services, Http and Pipes; but also some less covered areas like:
Directives, the Router and Observables. We will provide examples for using TestBed, fixtures, async and
fakeAsync/tick while recommending best practices.

Hasselt, Belgium
madewithlove
madewithlove
#1 Changing live audio with the web-audio API
As a guitar player, I usually use some effect-pedals to change the sound of my guitar. I started wondering: “What if, it would be possible to recreate these pedals using the web-audio-api?”. Well, it turns out, it is entirely possible to do so. This talk takes you through the basics of the web-audio-api and explains some of the audio-nodes I’ve used to change the live sound of my guitar. This presentation takes you through the basics of the web-audio-api. It explains some of the types of audio-nodes you can use to change the sound coming from an input device (eg: microphone, electric guitar, ...). As a bonus, I’ll explain how you can control a simple web-app with the web-midi-api, because, when playing the guitar, you don’t have a free hand to press a button, so we want to control it with our feet.
#2 I didn't know the browser could do that!
The times when a browser simply had to parse and show some
markup are long gone. These days they are full of interesting api’s exposing various information and
behaviour to web developers. This talk will walk you through a few of these api’s (speech, speech
recognition, battery, location, ...), some of which you might know, some maybe not. I will show a quick
example of what some of these api’s can do, and how to use them.

Winterthur, Switzerland
Nodebots
Nodebots
The rise of javascript robotics
Developers, this is your chance to dive into the World of Hardware! Javascript is already the most used Language on the Web that it makes sense to use it for Robotics as well! Ever more powerful and cheap Microprocessors (Arduino, Intel Edison, Raspberry Pi) combined with Javascript Frameworks for Robotics (cylon/johnny-five) enable to easily build even complex robots, powered by JavaScript.

Portland, Oregon — United States
Freelance web developer, consultant
Freelance web developer, consultant
#1 More Than Music: Tiny Computers, JavaScript and MIDI
Tiny computers such as the RaspberryPi, Arduino and C.H.I.P. have finally reached a level of performance and affordability that makes hardware experimentation accessible to everyone. At the same time, JavaScript has emerged as the lingua franca of web programming and can be found in many places beyond just the browser. What if I told you there was a mature protocol that's been around since 1983 and was uniquely poised to take advantage of this development?
Well, wonder no more and meet MIDI! Sitting at convergence of these two things is MIDI — a niche protocol that's been around since 1983 and was originally designed for musical instruments to communicate with one another. It's event-oriented approach to messaging feels right at home in the asynchronous world of JavaScript & Node, and the prevalence of MIDI support in older musical equipment means you can find unique, hackable and affordable hardware at your local pawnshop or Craig's List. This unlikely tech stack — Tiny Computers + JavaScript + MIDI — can lend itself to creative programming beyond music. George's Talk will explain how to get started, walk through several examples and elaborate on the future of this stack, not only as a platform for experimentation but for education as well.
Well, wonder no more and meet MIDI! Sitting at convergence of these two things is MIDI — a niche protocol that's been around since 1983 and was originally designed for musical instruments to communicate with one another. It's event-oriented approach to messaging feels right at home in the asynchronous world of JavaScript & Node, and the prevalence of MIDI support in older musical equipment means you can find unique, hackable and affordable hardware at your local pawnshop or Craig's List. This unlikely tech stack — Tiny Computers + JavaScript + MIDI — can lend itself to creative programming beyond music. George's Talk will explain how to get started, walk through several examples and elaborate on the future of this stack, not only as a platform for experimentation but for education as well.
#2 Konami-JS
An 8-year Retrospective Maintaining Frivolous OSS

Developer Program Member/ Electric Cloud
San Francisco Bay Area, USA
San Francisco Bay Area, USA
Moving to USA a-z
I moved to California almost 2 years ago and I am often asked different questions about life in the US.
This report is not about "moving to the US or not," this is a personal choice for everyone. I will talk
about the move itself and everything that is connected with this - visas, prices, galleys, housing and so
on.

Full Stack Developer at Provectus
Progressive Web Apps or how to make a web application closer to native
In my report, I want to talk about my experience in implementing
offline support with the help of Service Workers. And also, it will be considered what else Chrome offers,
so that the web application on the functional was closer to the native one.

CartFresh
Groupware System for fun and profit
Modern groupware systems interact with distributed sources of information require tricky approaches to keep data consistent and provide freedom on different levels of communication flow. CRDT, Operational Transformation, gossip, optimistic pub-sub is all about trade-offs. One of them has bad responsiveness in high-latency environments, another have good responsiveness but a lack of consistency. Let’s build something distributed and useful!

Sr. Software Developer at Debitoor at Ciklum
Use cases of Node.js Streams
Intro to Node.js Streams, what problems do they solve, how to properly use them, how not to use them,
where and how you can use them in your Node,js application.

Software Engineer at Grammarly
Reactive State Management
Functional Reactive Programming (FRP) gets a lot of hype nowadays. The JavaScript community provides us with excellent tools like RxJS, Bacon, and Kefir. But how do you use the power of FRP in your projects? How do you make your React application Reactive?
This talk is about atoms, lenses, and observables that help us create excellent applications. Also, I will share Grammarly’s experience in building React apps.
Talk description and abstracts:
1) Introduction. Why Reactive?
2) Immutable or Mutable Data? Using Observables with Atoms and Lenses.
3) How to Make Your App Truly Reactive. Our Experience in Building React Applications:
- Focal – lenses library developed by Grammarly
- Examples
Talk description and abstracts:
1) Introduction. Why Reactive?
2) Immutable or Mutable Data? Using Observables with Atoms and Lenses.
3) How to Make Your App Truly Reactive. Our Experience in Building React Applications:
- Focal – lenses library developed by Grammarly
- Examples

Software Consultant at Hell Yeah LLC
Cross-shell prompts in JavaScript
A brief history of how I wrote a single implementation of prompt
for the most popular shells (ksh/bash/zsh/fish). What benefits we can achieve with that approach.

CEO at Starbuildr
Enhancing durability of ReactJS applications with Elm components
Unlike hand-written JavaScript, Elm code does not produce runtime exceptions in practice. Instead, Elm
uses type inference to detect problems during compilation, we can take advantage of this and introduce Elm
components to our existing ReactJS applications to improve their production durability.

Back-end Developer at Toptal
Remote Developer Crash Start
What is Remote Work? What are the advantages of such a process organization? How to organize it? I will answer these and many other questions during my report.

Metarhia
#1 Asynchrony with the MetaSync library
Новый подход и новый синтаксис для асинхронности на JavaScript,
не только без лапши колбеков, но гораздо более элегантно и быстро, чем на промисах и асинк-эвейтах. Целый
набор примитивов асинхронности: асинхронная композиция, асинхронные курсоры по наборам данных в памяти,
коллекторы, дроссели, очереди, обработка ошибок, сравнение производительности. Многое на функторах и
чеининге, так что привычно для писать, что-то на прототипах (для скорости), совместимость с контрактом
Async I/O вообще и в Node.js в частности.
#2 Evolution of the IP Architecture
Evolution of applied information systems and prospects for the development of their architecture. Extract from the real practical experience, possible options for the development of technologies, needs that have caused these technologies and solutions. The basic material in the
article, also illustrations, but in the report it will be expanded.

Senior Software Engineer at Debitoor
Machine Learning & JavaScript: fitting together
Speech based on what I'm doing now in Debitoor - recognition of data (like currencies, amounts, taxrates) on receipts. I will start from some DataScience basics and then continue with my practical experience - how to implement all that stuff with JavaScript.

Full Stack JS Dev
Trojan War: SinonJS
How to get rid of the Achilles' heel of your unit tests? I'll tell you how quickly and easily start to use sinon.js unit test framework on your project right now. It will hurt.

Front-end developer at K&C
Component-Driven Development
I'll talk about a benefits of developing components outside of normal app: they are easier reuse
(highly!), maintain, test & work on them in the large team. I will also cover UI component explorers, and
tips which will help you to make development more painless.

Frontend Teamlead at Wrike
Dart... is alive?
Oh, well, let`s be clear: who needs Darth in 2017? Ask anyone what happened to the "JavaScript Killer", and you'll hear something like "Dart? it`s dead." Yes, that's may be correct, except for several facts.
Firstly, in Wrike we've been using Dart for two years and written a huge bunch of code. And if somewhere in the rainy Saint-Petersburg several dozen programmers writes a highly loaded service purely in Dart, (yes, yes, no JS at all) - probably it means something?
Secondly, Google himself categorically disagrees with this interpretation of the current state of affairs. Do not agree so much that they released one news after another. At first Flutter, then Fuchsia. And even more, they rewrote their ADWords (the main product that they earn money from) in Dart + Angular2. So maybe it means something?
It may seem strange, why on the JS conference someone wants to talk about Dart. However, I undertake to convince the stubborn JS fans that they should give Dart a chance, and as a maximum - start to using it right now.
Firstly, in Wrike we've been using Dart for two years and written a huge bunch of code. And if somewhere in the rainy Saint-Petersburg several dozen programmers writes a highly loaded service purely in Dart, (yes, yes, no JS at all) - probably it means something?
Secondly, Google himself categorically disagrees with this interpretation of the current state of affairs. Do not agree so much that they released one news after another. At first Flutter, then Fuchsia. And even more, they rewrote their ADWords (the main product that they earn money from) in Dart + Angular2. So maybe it means something?
It may seem strange, why on the JS conference someone wants to talk about Dart. However, I undertake to convince the stubborn JS fans that they should give Dart a chance, and as a maximum - start to using it right now.

CTO at Keenethics
Correct thinking
Speed of your PC and development tools affect your productivity. But this talk is about what happens on the "other side of the monitor" - in your brain.
I'll try to show algorithms of thinking and discuss caveats affecting your work and life.

Developer at wrike
Life Hacks for frontend developer
My recipes how to make things easier, faster and better. Stories from life and real examples. How to present a project to a remote customer, if you do not have a hosting and a domain? How to make a pixel in a pixel fast and easy? What miracles does the console have?

Senior Software Engineer at Lohika
Offline first made right with Reflex
Even though you always expect a sudden loss of Internet connection, do you always deal with it right? At the end of the day, it turns out that even multi million user web apps are still unprepared for changing and saving data while offline. Many of apps that we use lack the proper conflict resolution, which is crucial to every collaborative or planning tool, web editors, forms, booking apps – you name it.
During the last two years we’ve been working on a concept called Reflex to make things better. It’s an open source methodology usable with nearly any client, database or server technology. During the talk we’ll discuss its features, consider some use cases and take a deeper look into the anatomy of offline first.
During the last two years we’ve been working on a concept called Reflex to make things better. It’s an open source methodology usable with nearly any client, database or server technology. During the talk we’ll discuss its features, consider some use cases and take a deeper look into the anatomy of offline first.

Lead Software Engineer
Neural networks in js
Some nice show about what can neural networks do with code examples in JS and new framework.

Software Engineer at DA-14
Oh my Node or Security in NodeJS
I'll tell you about the bumps that I got while working with NodeJS. Namely cones and crutches, which had to be implemented, due to the emergence of security issues.
Security Holes:
- Insecure Dependencies
- Brute Force
- DDOS
- DB Injections
Solutions:
- Tools
- Modules
- Validation methods/ways
Security Holes:
- Insecure Dependencies
- Brute Force
- DDOS
- DB Injections
Solutions:
- Tools
- Modules
- Validation methods/ways

Co-Founder The Secret Circle Solutions
BDSM on the front-end in a functional style or full stack F# development
Functional programming in the trend and front-end is not exception. And full stack is now in fashion. But it's more practical, when both the client and the server are written in one language. Only who said that it should be Javascript, because there are interesting alternatives. About new one we'll talk.
Team Lead at Digital Hanger
Professional burnout
We will talk about professional burnout. What is it and how you
can differ it from tiredness. What to do with it? What to do with it if you are a team leader and your
team mate is burning out?

Open Source Developer at Metarhia, Node.js Collaborator
High-performance IPC and RPC for microservices and apps
In this talk we’ll take a look at a new open source project which provides fast and reliable IPC, RPC, remote events and data synchronization between any number of servers (Node.js) and clients (Node.js, web browsers and native Android and iOS applications) via TCP, WebSocket and Unix domain sockets. As a special bonus, we’ll talk about a tiny patch to Node core that was meant to improve IPC performance in this project but accidentally speeded up node_redis up to 10x in some scenarios.

XP Injection
Gamification in outsourcing company: experience report
Most of us used to hear word gamification only for end user
engagement into product usage. Some of us know about usage of similar approaches in product development
teams to improve and tune development process. But almost nobody believes that gamification is possible in
the context of outsourcing companies and teams. This talk is experience report of gamification usage on
very large project with detailed reusable framework demonstration. If you want to bring some fun and
really engage your team, then this talk is for you.

Frontend developer at Videogorillas
JS static typing. What and why.
JS is dynamically typed language, yet there is a trend for static typing JS. Why do we need static for JS.

Front-end developer at DA-14
Angular 4 Animate: Tomorrow's UI Technologies
During the speech at the OdessaJS conference, we will talk about “tomorrow”. Or, rather, about animation optimization and performance, the way how Angular animation system works and how we should check it for flexibility.
Apart from that, we’ll discuss some useful tricks, move beyond the routine solutions, while custom animations will serve as the icing on the cake.
Apart from that, we’ll discuss some useful tricks, move beyond the routine solutions, while custom animations will serve as the icing on the cake.

Software developer at DA-14
Angular Universal
With my presentation I want you to dive into the world of Angular. Using one of the recent cases, we’ll
look into server-side rendering and how it can be useful within your projects.
Beyond that, will discuss potential issues with 3rd party plugins and won’t miss the opportunity to cover the latest update, namely concerns with migration to Angular 4.
Beyond that, will discuss potential issues with 3rd party plugins and won’t miss the opportunity to cover the latest update, namely concerns with migration to Angular 4.

Senior Front-end Developer at EAHT
Magic of Vue.js
How Vue.js magically works and why it is better than React.

JavaScript Kamikaze at EXANTE
Real world WebAssembly
I'll show how to use WebAssembly and represent some useful tools.

Frontend architect at DataArt
RxJS - Think reactively
В мире фронтенда нам приходится управлять большим количеством
событий, которые могут влиять на текущее состояние приложения. В докладе, на упрощенном примере,
разберемся как в этом может помочь RxJS и потоки данных. / In the world of the frontend, we have to manage
a large number of events that can affect the current state of the application. Lets figure out how RxJS
and data streams can help us to handle this.

Frontend developer at EVO company
Modern javascript localization with gettext
In this report, let's talk about the problems of localization of the frontend and the options for its solution. I'll tell you about our library for translations - c-3po.js and how it can help you improve the localization process.

GlobalLogic
5 production Node.js stories
How to write Node JS application, so that it was not terribly painful to accompany it.

Oracle/Senior Applications Developer
Practical difficulties and approaches to its solution in node.js development
I'm going to discuss obstacles and some non-regular challenges, which could be encountered during
development with node.js, and most popular approaches to resolve them.

Senior FE developer/Department Manager
A cloud in pants
More and more often we hear about such things as: micro services, Docker, Saas, AWS, scalability - not in
the context of conferences, but in working routine and product requirements. In my report, I will talk
about the experience of developing cloud-based ready-made applications, particularly, attention will be
focused on the adoption of architectural decisions and the reasons for which they have to take.

Yury Shevtsov
Do IT/Lead Software Engineer
V8 + libuv = Node.js. Under the hood
How does the V8 work from the developer's point of view. What is needed to be screwed to V8 to get
Node.js. What does the code turn into JS and the other overhead. Are there any flows used there. And also
a little about native modules for Node.js.

Ciklum, Software engineer
Easy ways to speed up your web application
Running web applications on mobile devices really painful. I'll show several ways how these applications
speed can be improved. All together we will apply these techniques for some Open Source web app and go
through tools which can be helpful for you in future.

Easypay / Project Manager
Agile does not work. We all will die
- More meetings than a coding.
- More customers than developers.
- We run from support to new features.
- We burn through the deadlines.
- Agile does not save.
Don’t do this anymore!
The main idea of our conversation is how to stop doing what people are used to do for many years and start making the product correctly.
- More customers than developers.
- We run from support to new features.
- We burn through the deadlines.
- Agile does not save.
Don’t do this anymore!
The main idea of our conversation is how to stop doing what people are used to do for many years and start making the product correctly.

Full-stack developer passionate about JavaScript and modern stack.
Contributor to open-source projects.
Contributor to open-source projects.
Service-oriented GraphQL
We will look at current situation with architecture of RESTfull services and origins of GraphQL invention.
Discuss advantages and disadvantages of vanilla GraphQL implementation and discover of possibilities to
improve GraphQL using service-oriented architecture.