Logo

JS Fest 2020

ENG
  • ГОЛОВНА
  • КОНФЕРЕНЦІЯ
  • КОНТАКТИ
  • АРХІВ
    • JS Fest 2018
    • JS Fest 2019 Spring
    • JS Fest 2019 Autumn
Міжнародні спікери
Фокус на практику та технічність
Від Back-end до Front-end
ДИВИТИСЬ ДОПОВІДІ 2019

    ПРО КОНФЕРЕНЦІЮ

    JS Fest - міжнародна конференція, присвячена усім аспектам розробки на JavaScript.

    Це одна з найбільших JS конференцій в Україні, яка збирає сотні досвідчених однодумців з усього світу.

    Конференція пройде четвертий раз, та збере спікерів і спікерок з 10 країн світу, тож більш ніж 50% програми складуть закордонні експерти.

    Продовжуючи традицію, ми знову зустрінемося у найбільшому IT місті України — у Києві!

    Будемо говорити про:

    • архітектуру JS додатків
    • сучасні JS фреймворки та мови (GraphQL, TypeScript)
    • Безпеку JS додаткiв
    • Оптимізацію та тестування у JS
    • AI у JS додатках
    • світові тенденції у розробці
    • а також про те, як відповідати новим вимогам ринку та бути в тренді.

    ТЕМАТИКИ КОНФЕРЕНЦІЇ

    JS Frameworks

    JS Backend

    Security

    JS Core



    Architecture & Fundamenal

    Optimization & Testing

    JS Languages

    AI/ML

    ЧОГО ЧЕКАТИ ВІД ЗАХОДУ

    Підходи та інструменти

    В рамках конференції будемо говорити про використання корисних інструментів, фреймворків та практик.

    Круті спікери

    Запрошуємо ТОП-фахівців з США, Європи та України, які прочитають доповіді, насичені практичними прикладами з реальних проектів.

    Нові тренди в індустрії

    Можливість дізнатися про інновації та інсайти, що відбуваються у світі технологій, з перших вуст.

    Особлива атмосфера

    Ми створюємо особливу атмосферу для спілкування, щоб отримували нові знання, ділилися ідеями, вчилися і надихалися.

    Нові знайомства та networking

    Така масштабна подія - чудовий шанс отримати нові, перспективні знайомства, які допоможуть в кар'єрі програміста.

    Високий рівень організації

    Працюємо тільки з перевіреними підрядниками та суворо дотримуємося розкладу, тому форс-мажори виключені.

    Розіграш призів

    Наші партнери підготували безліч цікавих сюрпризів і конкурсів для учасників, так що ви підете не тільки з новими знаннями, але і з подарунками!

    Практичні кейси

    Експерти-практики, які щодня працюють з JS, поділяться своїм досвідом та викликами, що вони зустріли у проектах.

    Ben Lichtman
    Ben Lichtman
    Software Engineer, Microsoft, США

    Passionate about building developer tools and programming languages that help people write better software. Currently focusing on editor experiences and linters.

    Linting for TypeScript: Past, Present, and Future

    With a language as complex and dynamic as JavaScript is, many of us rely on linters to help catch bugs. Until recently, TypeScript users primarily used TSLint, while the rest of the JavaScript community used ESLint. In this talk, we will cover the differences between these tools, discuss the story of how TypeScript support in ESLint was introduced, and walk through the process of converting a TSLint rule to an ESLint rule.
    JS Languages
    Sam Bellen
    Sam Bellen
    Developer Advocate Engineer, Auth0, Бельгія

    I'm a Google Developer Expert who works as a Developer Advocate Engineer at Auth0. At Auth0 we're trying to make authentication and identification as easy as possible, while still keeping it secure.
    After office hours I like to play around with the web-audio API, and other ""exotic"" browser APIs. One of my side projects is a library to add audio effects to an audio input using JavaScript."

    Passwords are so 1990

    As long as we’ve been using the internet, and way before that, we have been authenticating through some sort of username and password combination. It has become the standard. With the ever-increasing number of web-apps, we’re seeing more and more data breaches as well. What if we could build our authentication processes in a way the user doesn’t need a password?
    Architecture & Fundamenal
    Michał Lytek
    Michał Lytek
    Full-stack developer, Польща

    Full-stack developer with a tendency to perfectionism. GraphQL and TypeScript evangelist, React and React Native enthusiast. He likes experimenting with different approaches of coding, always on track with the newest technologies. Big fan of open source, devotes his spare time to contributing on GitHub. Author of the TypeGraphQL framework for building type-safe GraphQL APIs. Apart from coding, he is an amateur of drones and a cat lover.

    Building type-safe GraphQL APIs

    GraphQL is becoming de facto the new standard for API development. This talk dives deep into one of the most powerful features of GraphQL - its type system - and also discusses the tools and best practices for building GraphQL APIs. You'll learn why building applications in a type-safe way is the gold standard for application development. You'll also see how it can reduce amount of bugs in your application by making its architecture more resilient and easier to evolve.
    JS Backend
    Vitaly Friedman
    Vitaly Friedman
    Головний редактор і співзасновник, Smashing Magazine, Німеччина

    В даний час працює креативним директором журналу Smashing Magazine та front-end/UX консультантом в Європі та за кордоном, співпрацюючи з Європейським парламентом, Haufe-Lexware, Axel-Springer та кількома іншими компаніями.

    The Future of Web Performance

    We’ve come quite far in web performance over the last decade, haven’t we? The connections are better than ever, the browsers smarter than ever, HTTP/2 is omnipresent and 5G is right here at the horizon! In fact, we’ve invented and mastered fancy code-splitting and tree-shaking techniques, reinvented bundling of assets in the world of HTTP/2 and learned how to minimize the payload to deploy fast and render soon. Are we done yet?
    Not really. In this session, we’ll look into areas that still need some work to be done. What about next-generation image formats and video encoders? What about wide-established progressive rehydration and lazy-loaded frameworks? What about progressive deployment with JAM Stack and universal Brotli compression by default? We’ll also touch on priority hints, cutting-edge strategies for service workers, subsetting typographic spaces with variable fonts, performance optimization with Network Information API and Device Memory API, runtime optimizations with WebAssembly and analytics-based, predictive performance optimization. Also, we’ll explore the privacy/authentication aspects of performance and how new development will change the way we build and deploy on the web. The future isn’t here yet, let’s examine what it might bring to all of us!
    Optimization & Testing
    Daniel Ostrovsky
    Daniel Ostrovsky
    Web Team Lead, Kaltura, Ізраїль

    Contact & coordination with many people/groups worldwide: R&D, Marketing, QA, Customer Support. R&D Management, managing the outsourced development teams. Design, development, testing, and maintenance of complex web-based software systems; hands-on in various WEB technologies.
    I'm passionate about family, about my gorgeous wife and my adorable kids.
    In my free time, I'm ""The Best Developer in The World"" based on my wife's ranking

    Full-Stuck RunTime Type validation? YES!!!

    Runtime boundaries type validation” or “full stuck type-safe”, - all this talking about the ability to validate types of data coming from external sources. It can be any API or WebHook Call, third-part form validation, DB queries results or file content (such as JSON or CSV). Let’s see how can we define runtime types for the expected data, that can be validated while the application is running, to create a smooth developer experience with strong assurances of correctness at build-time.
    Frameworks
    Harry Roberts
    Harry Roberts
    Consultant Front-end Architect, writer, Великобританія

    With a client list including Google, Unilever, and the United Nations, Harry is an award-winning Consultant Front-end Architect who helps organisations and teams across the globe to plan, build, and maintain product-scale UIs. A Google Developer Expert, he writes on the subjects of CSS architecture, performance, and scalability at csswizardry.com, develops and maintains inuitcss, authored CSS Guidelines, and Tweets at @csswizardry.

    From Milliseconds to Millions: A Look at the Numbers Powering Web Performance

    We all know performance is big business, but how big? Let's take a look at some of the numbers powering the web performance industry from both sides of the table. What do performance improvements mean for my clients, and how do we translate that into a working relationship?
    Optimization & Testing
    Кирило Бяло
    Кирило Бяло
    Founder & Lecturer, Salesbright School, Україна

    Засновник і куратор курсу Salesbright School
    - в.о. VP of Sales Operations @ ZephyrTel
    - ex-GM @ Crossover Ukraine
    - ex-HoS @ Springs & Adsy.com.ua
    Мої принципи у роботі дуже прості:
    — думати головою;
    — розуміти суть проблеми і вирішувати її радикально, а не симптоматчно;
    — бути корисним компанії і клієнтам;
    — розуміти чого хоче менеджмент.
    Це набуті навички, з ними не народжуються. І я радий нарешті поділитися своїм досвідом

    Навіщо технічному спеціалістові навички продаж і операційної діяльності

    — навіщо технічному спеціалісту вміти продавати;
    — навіщо розбиратися в системах автоматизації;
    — навіщо знати як функціонують і взаємодіють між собою різні внутрішні системи і процеси;
    — як на практиці використовувати розширений набір знань для покращення позиції компаній і своїх власних.
    Case Study
    Виктор Турский
    Виктор Турский
    CEO and principal software architect, WebbyLab, Україна

    CEO и архитектор в WebbyLab. Open source разработчик. Более 15 лет в IT, запустил более 60 проектов на JavaScript, более 20 докладов на конференциях.

    Эффективно чик-чик и в продакшен

    Мы стартуем разработку проекта, нам нужно написать фронтенд и бекенд. Как это сделать эффективно? Помогут ли нам 12 факторов? А при разработке фронтенда? Как правильно использовать контейнеризацию? Как работать с git-ветками? Как работать с конфигами? Что с логами? Масштабирование? Миллион вопросов. В докладе я расскажу, как мы к этому всему подходим, какие инструменты мы используем, на какие грабли наступали.
    JS Backend
    Владимир Рудой
    Владимир Рудой
    CEO, AgileVision, Україна

    Helping companies to create stunning SaaS products. Leading a team of fantastic engineers.

    Идеальная песочница с использованием V8

    В своём докладе я покажу как создать идеальную "песочницу" для JavaScript с использованием движка V8.
    Вы узнаете как, используя возможности V8 и конструкции JavaScript, создавать безопасные среды исполнения и для чего это может понадобиться.
    Architecture & Fundamenal
    Martin Chaov
    Martin Chaov
    Software Architect, SBTech, Болгарія

    I know some stuff about software, mainly where it can hurt you the most :) I've been working in the IT industry since 2006 and started sharing my experience on different topics at events in 2013.

    The Mythical Senior Developer

    A story about the never-ending professional journey, alcohol, unicorns, cynicism, egos, bubbles, and hurt feelings.
    Why copy/paste practices are not going to make you invaluable, but thinking and working hard would? - In this talk, we are going to explore the habits that make or break professionals.
    The talk is based on my personal experiences dealing with professionals in the software and other industries, over the past ~15 years or so. Although it is based on personal experiences and insights I am going to support the thesis by referencing some of the works of people like James Carse, Carl Jung, Jordan Peterson, Simon Sinek, Dale Carnegie, and others.
    Misc
    Юрій Голюк
    Юрій Голюк
    Frontend coach / Full-stack developer, Mate academy, Україна

    I am an experienced full-stack Javascript developer. Worked with Angular, React, Redux, Next.js, GraphQL, Node.js, Apollo Server, and Postgres DB. Currently, I am working at Mate academy as a coach/fullstack developer and have a lot of experience explaining technical topics to the students.

    How to build your own web-based code editor & test runner?

    Під час доповіді ви дізнаєтесь як побудувати власний веб редактор коду та безпечно запускати і тестувати клієнтський код. Починаючи від Frontend розробки, закінчуючи API та cloud functions. Поговоримо про AWS Lambda Functions, monaco-editor інші технології, а також розглянемо альтернативні рішення.
    Case Study
    Александр Хотемской
    Александр Хотемской
    Intependent SDET Contractor, Україна

    Специалист по функциональной автоматизации тестирования. Занимаюсь разработкой проектов автоматизации на разных языках (JavaScript, TypeScript, Java, Python) и различных типов (Web, API, Desktop, iOS, Android, Gamedev). Финалист и судья Ukrainian Dev Challenge. Тренер в StartIT. Докладчик на различных конференциях.

    Browser gangbang: CDP + Webdriver W3C

    За годы существования Selenium Webdriver стал официальным стандартом для автоматизации веб приложений. У него есть множество преимуществ, но также оказалось и много недостатков. К примеру невозможность более низкоуровневого контроля браузера. Из-за этого многие команды решают организовывать тестирование с использованием библиотеки Puppeteer. В ней используется другой канал связи - Chrome Debug Protocol, который коммуницирует с браузером через websocket. У него есть свои интересные преимущества такие как перехват HTTP запросов, подписка на события браузера, и множество других. В этом докладе мы посмотрим как можно управлять одним браузером через два канала - puppeteer и webdriver одновременно, зачем это нужно, в чем преимущества такой комбинации, и как это масштабируется с использованием тестовой фермы.
    Optimization & Testing
    Андрей Лазарев
    Андрей Лазарев
    Lead Front End Developer, Aurora Technologies, Україна

    13 лет опыта разработки. Опыт рефакторинга 3-х приложений на различных стадиях проектов: более 100+ бизнес-клиентов, 100k+ пользователей и более 100m+ пользователей. Последние 4 года работаю в рамках React / Redux стека.

    Рефакторинг React проектов

    Любой проект, на определенном этапе своей жизни сталкивается с необходимостью существенно изменить используемые технологии или архитектурные решения.
    В докладе я хотел бы поделиться опытом:
    - Как не доводить или существенно отодвинуть необходимость рефакторинга.
    - Как выбрать подходящий момент для проведения рефакторинга.
    - Этапами планирования и реализации.
    - Особенностями рефакторинга Highload проектов.
    - Направлениями рефакторинга React проектов.
    Frameworks
    Борис Могила
    Борис Могила
    Senior JS developer, DOM.RIA, Україна

    Співорганізатор конференції VinnytsiaJS. Викладач Вінницької ІТ-Академії. Маю досвід в розробці швидких, масштабованих, високонавантажених рішень. Працюю над розробкою VR інтерфейсів. Цікавлюсь машинним навчанням і AI. Люблю багато думати і мало писати.

    Web maps essentials

    Що потрібно розробнику для побудови карти? Тайли, GeoJson, кластеризація та багато іншого. Приходьте буде цікаво..
    Case Study
    Роман Савіцький
    Роман Савіцький
    Team lead, Infopulse, Україна

    Співзасновник BeerJS Zhytomyr. Співорганізатор frontend://zt, OdessaJS. Арбітр DevChallenge2019 та футболу.

    Web performance metrics

    Вебпродуктивність. Що ще тут розповісти? Всі ми знаємо, що це важливо, як не отримувати таких проблем і до чого це призводить.
    Але якщо необхідно вирішити проблему серед мільйону ресурсів важко обрати потрібний.
    Моя доповідь не тільки про рішення проблеми, а про находження інструментів та метрик для рішення проблеми. Чому саме ці метрики варто використовувати і як з цим жити.
    Метрики, практики, проблеми, рішення. Які різні поняття, а насправді це цепочки, які нам разом необхідно виставити в логічний ряд.
    Запрошую Вас побрейнштормити разом!
    Optimization & Testing
    Павел Черторогов
    Павел Черторогов
    Архитектор информационных систем, ps.kz, Казахстан

    GraphQL гуру, разработчик интернет-продуктов, опенсорс-мейнтейнер. Сделал более 15 докладов о GraphQL и провел более 5 воркшопов как на клиенте, так и сервере. В веб разработке с 2001 года. Обладает обширными практическими знаниями по бэкенду, фронтенду, администрированию и построению архитектуры. В 2016 начал разработку graphql-compose (генератора GraphQL-схем). Написал много материала о GraphQL на русском – https://github.com/nodkz/conf-talks. В 2019 начал формировать best practice по дизайну GraphQL-схем – https://graphql-rules.com.

    ApolloClient 3 – лучше чем Redux с REST API

    В докладе Павел затронет тему болячек Redux с REST API. Предложит альтернативное решение – GraphQL и ApolloClient 3. Покажет как с новыми инструментами поднимется Developer Experience. Что нового и хорошего завезли в ApolloClient 3. И расскажет о болячках альтернативных GraphQL-клиентов – Relay, ApolloClient 2.
    Frameworks
    Тимур Шемсединов
    Тимур Шемсединов
    Chief Software Architect, Metarhia, Україна

    Одна из основных проблем платформы Node.js заключается в том, что каждый процесс, обслуживающий клиентские подключения, выполняется в одном адресном пространстве и на одном ивентлупе, с одинаковыми привилегиями операционной системы (доступом к сети, диску, другим процессам) и разные по своим логическим правам пользователи получают одинаковый приоритет, мешают друг-другу создавая состояние гонки, борются за ресурсы, высока вероятность повышение привилегий. Во время ошибок один пользователь способен разрушить целостность процесса, обслуживающего тысячи соединений. Бороться с этими проблемами можно при помощи нескольких техник, изоляция процессами и/или потоками, изоляция песочницами и/или контекстами виртуальной машины v8, изоляция программными абстракциями. Доклад посвящен детальному рассмотрению и сравнению этих техник, способам комбинирования техник изоляции и повышению безопасности и надежности кода в Node.js.

    Context microisolation in Node.js

    Архитектор технологического стека и лидер сообщества Метархия, преподаватель КПИ, руководитель R&D по разработке высоконагруженных облачных технологий, top-3 разработчик в Украине (по рейтингу фолловеров на github), Организатор митапов NodeUA, Kiev Node.js и How Programming Works (>15.000 инженеров), спикер >40 конференций, автор >160 видео лекций на youtube с >12.000 подписчиков, 25 лет в ИТ, эксперт в построении распределенных корпоративных приложений и архитектуре систем, кибернетике, базах данных, промышленной автоматизации, телеметрии, системном программировании, проектировании сетевых протоколов и серверов. Контрибьютор Impress Application Server, Node.js, JSTP и многих других open source проектов.
    JS Backend
    Михаил Бондарчук
    Михаил Бондарчук
    CTO, SDCLabs, Україна

    I am a full-stack web developer, passionate about testing from Kyiv, Ukraine. I also work as a consultant & trainer focused on testing. I work on open-source product CodeceptJS with a goal to bring a better testing experience to developers. I want to make testing as easy and as joyful as it could be. I aim to unite all the good tools under & approaches one umbrella so everyone could write tests more spending less time.

    Enjoy End to End Testing as I Do

    I am a developer who loves end to end testing. I want to make testing as simple as describing user's actions. I don't like diving into technical things, building complex CSS selectors, control flaky animations, add waiters, and timeouts. Nope! Testing is not about that! Testing is about writing user scenarios and automating them in a browser. You need to know what to test and how to reduce the impact & limitations of tools on your test scenarios. Let's take a look at how you can do that using CodeceptJS, testing framework which unites best tools on the market: Puppeteer, WebDriver and TestCafe.
    Optimization & Testing
    Josh Wulf
    Josh Wulf
    Developer Advocate, Camunda, Австралія

    JS/TS coder from back in the day. Developer Advocate at Camunda. Open Source Maintainer. StackOverflow Friend.

    Five Lessons from Refactoring Code on StackOverflow

    I spent a couple of weeks answering questions on StackOverflow, and got myself to the top 0.60% in the world for the year. While I did that, patterns started to emerge. These are the top five issues in 80% of JS code on StackOverflow - many times all of them together. Learning about these refactorings will make your JS coding journey 253% easy.
    Architecture & Fundamenal
    Александр Церковный
    Александр Церковный
    Front-end Architect, Parimatch Tech, Україна

    10 лет опыта в веб разработке, работал во всех хайповых и не очень сферах от eCommerce и A&B/MV testing до machine learning и crypto, всегда предпочитал продуктовые компании.

    Assets Based Architecture

    Расскажу о том, как продуктово построить правильную независимую разработку на основе технического подхода, который мы в Parimatch Tech называем Assets Based Architecture. Как и наша компания доклад будет пересекаться с деньгами, людьми, скоростью доставки, ответвенностью ну и конечно с техническими деталями: service-discovery, контракты и модели, поддержка Native, design patters ну и конечно же компромиссы технического подхода
    Architecture & Fundamenal
    Александр Товмач
    Александр Товмач
    Full-stack web developer, Україна

    Пишу статьи, участвую в open-source, выступаю с докладами, помогаю с документацией и её переводами разным проектам. Топлю за идеи оптимизации веба и free knowledge sharing.

    Зачем контрибьютить в open source?

    Используешь React, Node.js, Firefox и никогда не думал платить за это? Хотел внести свой вклад в открытый исходный код, но не знал с чего начать? Думаешь что контрибьютинг в open source это чистая благотворительность, которая не может принести пользу лично тебе? Этот доклад поможет ответить на эти и другие вопросы, а также понять ― быть или не быть open source contributor'ом.
    Misc
    Matheus Albuquerque
    Matheus Albuquerque
    Senior Software Engineer, Front-End, STRV, Чехія

    I'm a client-side architect – with an iOS and node.js background – currently working as a front-end engineer at STRV, a Prague-based strategy, design, and engineering company with clients across the whole America and Europe.
    My areas of interest/passions include JavaScript and compile-to-JS languages, architecture patterns, User Interfaces libraries & frameworks (like React), developer tooling and performance optimization.

    Deep diving on Concurrent React

    Writing fluid user interfaces becomes increasingly challenging as the application complexity increases. Thankfully, the React core team has been putting a lot of effort to improve this since the React Fiber rewrite – and, more recently, with features like Time Slicing, Suspense and a few new libraries resulting from Fiber.
    Yet, in a world where all we hear are hooks™, the way these different pieces of the Concurrent React umbrella work is not always well detailed.
    That's why we’ll explore how properly scheduling UI work improves your app’s user experience by diving into Concurrent React and learning how it improves the responsiveness of web applications.
    Last but not least, we'll take a glimpse into the future of the Web platform.
    Frameworks
    Stephen Lau
    Stephen Lau
    Consultant/CEO, Lau Engineering, Швеція

    As a consultant and teacher, Stephen has spent the last few years working with clients large and small around the world. After starting his career in Canada as a computer engineer doing hardware and firmware design, he’s slowly moved up the stack through firmware, drivers, operating systems, rendering engines, app development, all the way to working with cloud-deployed server and client-side web development. An avid traveler he’s averaged over 20 countries a year for the last few years. He also thinks writing about himself in the 3rd person feels weird.

    Tree Shaking like a Sasquatch

    Tree shaking is one of those things that every good JS and TS developer knows they need. It’s vital to reducing bundle size and thus optimizing the time our users need to wait for our site to be interactive. Likely we don’t really think about how importing (and exporting) from all of the modules we use affects our bottom line, we just grab what we need from npm and get things done! Sadly as good developers life isn’t quite so simple.
    Going back in time we will run through a (brief) history of modules: import, export, require, CommonJS, AMD, ES6 modules and more! Getting a better understanding of these can help you and your team write better code both for using and providing modules. Then we’ll fast forward and talk about the state of modules today, and investigate a few examples of how different module types behave when tree shaking. We’ll finish up by drawing some guidelines and talking about what we can do in our projects to make sure we’re maximizing the gains when tree shaking.
    Architecture & Fundamenal
    Станислав Долгачев
    Станислав Долгачев
    Software Engineer, EPAM, Україна

    Живу фронтенд-разработкой c 2014 года.
    За это время прошёл путь от начинающего до ведущего разработчика в компании EPAM.
    Также являюсь лидером фронтенд-сообщества внутри компании, где помогаю готовить доклады и веду встречи по фронтенд. Последние два года занимаюсь развитием и обучением коллег как лектор и ментор.

    TDD без тестов

    Мой доклад про то, как я начал писать на продакшене по TDD (Test Driven Development) и понял, что тесты в этом подходе не главное. Что продумывание своей работы наперед несет гораздо большую ценность. Мы рассмотрим почему никто не хочет писать по TDD и как преодолеть этот барьер. Также я покажу как пишу код я и расскажу почему это приносит гораздо больше удовольствия, чем раньше.
    Optimization & Testing

    ЯК ЦЕ БУЛО

    Організатор конференції - Fest Group

    Інші наші івенти:

    QA Fest

    QA Fest

    .NET Fest

    .NET Fest

    Embedded Fest

    Embedded Fest

    DevOps Fest

    DevOps Fest

    Java Fest

    Java Fest

    За 6 років організували:

    10700+
    учасників

    17
    івентів

    529
    доповiдей

    623+
    годин унікального контенту

    КОНТАКТИ

    Пишіть нам листи, ми любимо їх отримувати, а ще більше - відповідати на них! Не любите писати? Тоді просто зателефонуйте +38 066 9200839!


    Місце проведення

    м. Київ, вул. Вадима Гетьмана, 6
    Mercure Congress Centre

    Безкоштовний паркінг

    Контакти

    Інші конференції - FEST GROUP

    Загальні питання, інформаційне співробітництво і спонсорство info@jsfest.com.ua

    +38 066 9200839

    Ми у соціальних мережах


    JS Fest




    CODE OF CONDUCT

    © 2020. JS Fest