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
Gerard Sans
#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.
Sam Bellen
Hasselt, Belgium
#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.
Markus Leutwyler
Winterthur, Switzerland
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.
George Mandis
Portland, Oregon — United States
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.
#2 Konami-JS
An 8-year Retrospective Maintaining Frivolous OSS
Artyom Trityak
Developer Program Member/ Electric Cloud
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.
Timofey Lavrenyuk
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.
Maksym Klymyshyn
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!
Andrii Shumada
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.
Gregory Shehet
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
Denys Dovhan
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.
Vyacheslav Voronchuk
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.
Alex Rozumii
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.
Timur Shemsedinov
#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.
Philip Shurpik
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.
Oleksandra Kalinina
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.
Nikolay Kozhukharenko
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.
Eugen Gusev
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.
Oleksiy Pletnov
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.
Alexey Zolotykh
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?
Denis Yaremov
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.
Vsevolod Rodionov
Lead Software Engineer
Neural networks in js
Some nice show about what can neural networks do with code examples in JS and new framework.
Roman Sachenko
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
- DB Injections

- Tools
- Modules
- Validation methods/ways
Andrii Chebukin
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.
Alex Troush
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?
Alexey Orlenko
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.
Mikalai Alimenkou
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.
Helen Zhukova
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.
Anton Vidinev
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.
Artem Paliy
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.
Andrew Borisenko
Senior Front-end Developer at EAHT
Magic of Vue.js
How Vue.js magically works and why it is better than React.
Sergey Rubanov
JavaScript Kamikaze at EXANTE
Real world WebAssembly
I'll show how to use WebAssembly and represent some useful tools.
Aleksandr Gribanov
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.
Alexander Mostovenko
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.
Nikita Galkin
5 production Node.js stories
How to write Node JS application, so that it was not terribly painful to accompany it.
Vitaliy Lebedev
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.
Yuriy Dadichin
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.
Artem Denysov
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.
Alexander Marchenko
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.
Nick Raienko
Full-stack developer passionate about JavaScript and modern stack.
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.

Welcome to join workshop:
The rise of JavaScript Robotics (by Markus Leutwyler)

When? On July 2, 9 pm-12pm
How to participate? Please buy a special workshop ticket.

Wanna be a Maker? Rock the robotics and use your super brain power on alive metallic beings? Create, design and program your own awesome robots with JavaScript and open source hardware?

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.

In this 3h practical Workshop for Robotics Beginners we start by assembling the 2 wheeled Robot Kits (Wifi-enabled, and with custom Lasercut and 3D printed parts), decorate them to your taste and then program them with JavaScript! We end with a Sumo-style Battle or Capture the Flag Session!

After the workshop, you can take the Robot home with you :)
Prerequisites: Just bring your own notebook (Linux, Mac or Windows)

Target group: Anyone interested in Robotics, Ages 14 and up.



Markus is a technical consultant during day time and a maker in his spare time. As a co-founder and regular at FabLab Winterthur, he works on Robotics, IoT and Low-Power Networking. His various interests range from Photography, Multipotentialism to co-working, 360 Degree Video and Music.

Master class JSPM way of doing ES6 development (by Sergey Seletskyy)

When? 2 July, 14:00. You can buy a ticket for a master class here

Using a simple React/Redux app I will show you:
This master class is intended for engineers who have experience in React development, use ES6 and want to acquire or improve their skills in SystemJS/JSPM
The content of master class includes:
Requirements to participants of master class:
After attending the master class participants will:


Sergey Seletskyy full stack разработчик ruby-javascript, старший разработчик в компании Lohika (Altran).

INSTAphoto: от социальной сети для мобильной фотографии до крупнейшей рекламной площадки

Когда? 1 июля, 11:50

Instagram создавался как платформа для мобильной фотографии, но многое изменилось - и сейчас, это не просто социальная сеть для общения и развлечений, а отличная рекламная площадка для бизнеса любого масштаба и сервис для обмена опытом в разных сферах.
О чем поговорим:


Евгений Касяненко, тренер "Цитрус Академии"
30 June pre-party
Функциональная садо-мазо разработка на TypeScript и F# с примесью Elm
Андрей Чебукин *
Coffee break
Offline first made right with Reflex
Denis Yaremov **
Coffee break
Easy ways to speed up your web app
Артем Денисов *
Переезд в США от а до я
Артем Тритяк
Coffee break
Alex Migutsky
1 July
Hall А
Hall В
Tech Corners
Йога в парке Шевченко. Берите с собой коврики :)
I didn’t know the browser could do that!
Sam Bellen * (in English)
Real world WebAssembly
Sergey Rubanov **
Coffee break
JS static typing. What and why.
Helen Zhukova *
Magic of Vue.js ?
Andrew Borisenko *
Coffee break
Unleashing the power of GraphQL and React
Gerard Sans * (in English)
Service-oriented GraphQL
Nick Raienko **
Мастер-класс: INSTAphoto
Евгений Касяненко
Lunch #1
Professional burnout
Alex Troush *
Gamification in outsourcing company: experience report.
Mikalai Alimenkou *
Мастер-класс: INSTAphoto
Евгений Касяненко
Coffee break
Евгений Гусев **
V8 + libuv = Node.js. Under the hood
Yurii Shevtsov **
DDD во фронтенде. WAT? WTF? YAGNI!
Alex Migutsky **
Lunch #2
Part 1. More Than Music: Tiny Computers, JavaScript and MIDI
George Mandis * (in English)
5 production Node.js stories
Nikita Galkin **
Пишу на колбеках, а что... (Асинхронное программирование)
Timur Shemsedinov *
Coffee break
Part 2. More Than Music: Tiny Computers, JavaScript and MIDI
George Mandis * (in English)
The rise of javascript robotics"
Markus Leutwyler ** (in English)
Machine Learning and AI - зачем оно мне джаваскриптеру?
Philip Shurpik *
Coffee break
Practical difficulties and approaches to its solution in node.js development
Vitaliy Lebedev **
High-performance IPC and RPC for microservices and apps
Alexey Orlenko ***
Agile не работает. Мы все умрём!
Alexander Marchenko **
Coffee break
Облако в штанах
Yuriy Dadichin *
Angular Universal
Artem Paliy *
Лайфхаки для фронтендера
Alexey Zolotykh *
Angular 4 Animate: завтрашние UI технологии
Anton Vidinev *
Hачало афтепати на берегу моря
Truman Hot Boat на пляже Дельфин
2 July
Hall А
Hall В
Hall С
Йога у моря. Берите с собой коврики
Утренний кофе
Открытие 2го дня конференции
KonamiJS: a 10 year old Open Source project
George Mandis * (in English)
Subject: Oh my Node или что нужно знать о безопасности в NodeJS
Roman Sachenko *
Coffee break
Progressive Web Apps или как сделать веб-приложение ближе к нативному
Timofey Lavrenyuk **
Groupware System for fun and profit
Maksym Klymyshyn ***
Coffee break
Angular Testing Recipes (v4+)
Gerard Sans * (in English)
Enhancing durability of ReactJS applications with Elm components
Vyacheslav Voronchuk **
Lunch #1
Remote Developer Crash Start
Alex Rozumii *
Как правильно думать
Oleksiy Pletnov *
DDD во фронтенде. WAT? WTF? YAGNI!
Alex Migutsky **
Coffee break
Neural networks in js
Vsevolod Rodionov **
Reactive State Management
Gregory Shehet **
Lunch #2
Changing live audio with the web-audio-api
Sam Bellen * (in English)
Cross-shell prompts in JavaScript
Denys Dovhan **
Professional burnout
Alex Lyban & Alex Troush *
(Tech Corners)
Coffee break
Component Driven Development
Nikolay Kozhukharenko *
Use cases of Node.js Streams
Andrii Shumada **
Coffee break
RxJS - think reactevly
Aleksandr Gribanov **
Эволюция архитектуры ИС
Timur Shemsedinov **
Coffee break
Modern approach to localization in javascript with the good old gettext and c-3po
Alexander Mostovenko **
Trojan War: Sinon
Oleksandra Kalinina *
Tech Corner #5
Coffee break
Хардкорность доклада: * - easy, ** - middle, *** - hard

Neotech Development - is a team of highly trained professionals. We use cutting-edge technologies where it is justified and adds unquestionable gain. Each employee is valued and we try our best to supply each and everyone of our team with everything needed, taking into the consideration individual requests. Read more...
We are happy to discuss with you the additional terms of the partnership
that will be most interesting to you - individually.
Want to become a OdessaJS 2017 partner?
call by phone +38 050 373 14 65 (Julia)
write to us to odessajsconf@gmail.com
or write to Skype - cherni44ka
Download partnership program
Sweet partner
The hotel "Black Sea (“Chernoye more”), the park of Shevchenko"

OdessaJS 2017 participants are able to get a 10% discount for an accommodation in 4 hotels in Odessa: Black Sea "Shevchenko Park",

Black Sea "Rishelievskaya", Black Sea "Panteleimonovskaya", Black Sea "Otrada".

Registering on the hotel site in the Reservations section, by phone 048 710 10 10 from 9:00 to 18:00,

or by e-mail sales1@blacksea-hotels.com say that you are going to the conference and call the code word "OdessaJS 2017".
How to get to the conference venue How to get to Trueman Hot Boat, Dolphin Beach
Organizers’ Team
Julia Cherniak
Skype: cherni44ka
+38 (050) 373-14-65
Artyom Trityak
Skype: art.trityak
Program committee
Алексей Мигуцкий
Senior Software Development Engineer at Microsoft
Тимур Шемсединов
Преподаватель КПИ, архитектор технологического стека Metarhia
Evgen Obrezkov
Senior NodeJS Developer
Philip Shurpik
Senior Software Engineer at Debitoor
Thanks to the following hotels for the support of OdessaJS '2017

Discount for accommodation in the hotel “Odessky Dvorik” - 15%

Discount for accommodation in the hotel “Metro Hotel Apartments” - 20%

Discount for accommodation at the hotel - 20% “Aivazovsky” - 20%

Discount for accommodation in the hotel “Klumba” - 20%

Discount for accommodation in the HC “Odessa” - up to 20%

Discount for accommodation in the hotel “Mozart” - up to 30%

Discount for accommodation in the hotel “Potemkinn” - 10%

Participants of the conference will be able to get a discount on hotel accommodation, using the promo code "I'm going to OdessaJS" during making the booking.