paint-brush
JSNation Afterthoughts: Not Sure If It’s Worth Visiting a JS Conference? Don’t Think Much, Just Go!by@MaryVorontsov
365 reads
365 reads

JSNation Afterthoughts: Not Sure If It’s Worth Visiting a JS Conference? Don’t Think Much, Just Go!

by Marina VorontsovaJune 12th, 2019
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow

Too Long; Didn't Read

<em>Last weekend, I spent three days in Amsterdam talking to a bunch of the most progressive web developers in Europe and in the States. Here’s a little wrap-up of the event, as seen through the eyes of a copywriter, who just happens to be me. I’m working for </em><a href="http://soshace.com"><em>Soshace.com</em></a><em> and we’ve helped JSNation in conducting the </em><a href="https://blog.soshace.com/en/2019/05/17/soshace-becomes-an-informational-partner-of-js-nation-in-amsterdam/"><em>interviews</em></a><em> before and during the&nbsp;event.</em>

People Mentioned

Mention Thumbnail

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - JSNation Afterthoughts: Not Sure If It’s Worth Visiting a JS Conference? Don’t Think Much, Just Go!
Marina Vorontsova HackerNoon profile picture

Everything that happens in Amsterdam — stays in Amsterdam. And while certainly some things should be left this way, other things, like the JSNation conference that happened last week, is something truly worth sharing.

Last weekend, I spent three days in Amsterdam talking to a bunch of the most progressive web developers in Europe and in the States. Here’s a little wrap-up of the event, as seen through the eyes of a copywriter, who just happens to be me. I’m working for Soshace.com and we’ve helped JSNation in conducting the interviews before and during the event.

The fresh air that feels almost velvety on the skin; the rain, when it comes, drizzles as the shoes of the ballet dancer; the water that flows in every direction adorning and rejuvenating the city — that was my first impression from Amsterdam which lasted till the very end of my trip.

body[data-twttr-rendered="true"] {background-color: transparent;}.twitter-tweet {margin: auto !important;}

Look at these, though. Aint it beautiful?

— @MaryVorontsov

function notifyResize(height) {height = height ? height : document.documentElement.offsetHeight; var resized = false; if (window.donkey && donkey.resize) {donkey.resize(height); resized = true;}if (parent && parent._resizeIframe) {var obj = {iframe: window.frameElement, height: height}; parent._resizeIframe(obj); resized = true;}if (window.location && window.location.hash === "#amp=1" && window.parent && window.parent.postMessage) {window.parent.postMessage({sentinel: "amp", type: "embed-size", height: height}, "*");}if (window.webkit && window.webkit.messageHandlers && window.webkit.messageHandlers.resize) {window.webkit.messageHandlers.resize.postMessage(height); resized = true;}return resized;}twttr.events.bind('rendered', function (event) {notifyResize();}); twttr.events.bind('resize', function (event) {notifyResize();});if (parent && parent._resizeIframe) {var maxWidth = parseInt(window.frameElement.getAttribute("width")); if ( 500 < maxWidth) {window.frameElement.setAttribute("width", "500");}}

On June 7th, the conference day, we were picked up with a couple of speakers from the boat, where we were staying, at around 7 am, by the captain who seemed a little frustrated when he heard we didn’t have time to cruise throughout the canals but had to go straight to the conference as early as possible. He, nevertheless, managed to sail around talking about the buildings we were passing by, the history of some of those places, the movie museum, where the Hitchcock’s Birds was restored, and Stoneheads, and so on.

Amsterdam canals (source: depositphotos)

We were almost around the church, where the conference took place when we entered a very narrow canal with a huge log of the tree that fell down during the previous night’s storm. We decided that was the sign to leave the captain behind and get ready to roll by ourselves. We took off and roamed around with Google maps until we found the most beautiful church in town. Turned out that was the place.

waiting to get in

The venue was amazing. Zuiderkerk, built in the 17th century, was old stone and stained glass and had an ambiance of a sacred cage of G-d. As one of the speakers put it, it felt like a JavaScript temple. And it certainly was, at least for June 7th, where the most progressive and fascinating talks took place.

body[data-twttr-rendered="true"] {background-color: transparent;}.twitter-tweet {margin: auto !important;}

This venue man! #JSNation . Real really cool and congrats to the organizers for managing to get a good sound setup considering the acoustics of a church.

— @_utukku

function notifyResize(height) {height = height ? height : document.documentElement.offsetHeight; var resized = false; if (window.donkey && donkey.resize) {donkey.resize(height); resized = true;}if (parent && parent._resizeIframe) {var obj = {iframe: window.frameElement, height: height}; parent._resizeIframe(obj); resized = true;}if (window.location && window.location.hash === "#amp=1" && window.parent && window.parent.postMessage) {window.parent.postMessage({sentinel: "amp", type: "embed-size", height: height}, "*");}if (window.webkit && window.webkit.messageHandlers && window.webkit.messageHandlers.resize) {window.webkit.messageHandlers.resize.postMessage(height); resized = true;}return resized;}twttr.events.bind('rendered', function (event) {notifyResize();}); twttr.events.bind('resize', function (event) {notifyResize();});if (parent && parent._resizeIframe) {var maxWidth = parseInt(window.frameElement.getAttribute("width")); if ( 500 < maxWidth) {window.frameElement.setAttribute("width", "500");}}

The show definitely started with the best MC I’ve ever met, Max Salnikov, from “sunny” Oslo, taking the stage, warming up the crowd, introducing the hosts and the lineup. What really amazed me about Max was the way he seemed to be always in a super good mood — even by the end of the conference, he was still full of positive energy and transfixingly powerful vibes that contagiously spread to the crowd.

Max on stage

The conference began with Kyle Simpson, as a keynote speaker, with his presentation titled as “Keep Betting on JS.” It was an amazing talk full of allusions and references to the history of the American spaceflight and how the developer community could learn from the hardships of the space industry and transform the future of the web development. The JavaScript naysayers, back in the day, predicted that there would be a time when JS couldn’t grow to meet the demands of modern development, but Kyle was positive that JS had arrived and was here to stay. However, where and how JS was headed, Kyle said, was fully dependent on the community, the ecosystem, and the expansion of the open source technologies.

body[data-twttr-rendered="true"] {background-color: transparent;}.twitter-tweet {margin: auto !important;}

Kyle Simpson: "Open web technologies will always win" #JSNation #pwa

— @dannymoerkerke

function notifyResize(height) {height = height ? height : document.documentElement.offsetHeight; var resized = false; if (window.donkey && donkey.resize) {donkey.resize(height); resized = true;}if (parent && parent._resizeIframe) {var obj = {iframe: window.frameElement, height: height}; parent._resizeIframe(obj); resized = true;}if (window.location && window.location.hash === "#amp=1" && window.parent && window.parent.postMessage) {window.parent.postMessage({sentinel: "amp", type: "embed-size", height: height}, "*");}if (window.webkit && window.webkit.messageHandlers && window.webkit.messageHandlers.resize) {window.webkit.messageHandlers.resize.postMessage(height); resized = true;}return resized;}twttr.events.bind('rendered', function (event) {notifyResize();}); twttr.events.bind('resize', function (event) {notifyResize();});if (parent && parent._resizeIframe) {var maxWidth = parseInt(window.frameElement.getAttribute("width")); if ( 500 < maxWidth) {window.frameElement.setAttribute("width", "500");}}

Kyle briefly dived into his own journey into JavaScript, and how he felt there was always the lack of proper and clear information about the language: the definitive guides and cliffnotes were either too short, too big, or too dry. He realized that his purpose might be to fix the existing knowledge gap and felt compelled to write the series which he later named “You Don’t Know JS.” While he was talking about the differences between ES5, ES6, ES2016 — ES2019, I kept observing the audience, which was an absolutely beautiful experience: people were mesmerized by Kyle’s charisma, with one guy sitting next to me listening to Kyle’s talk with an open mouth for like the whole 40 minutes.

body[data-twttr-rendered="true"] {background-color: transparent;}.twitter-tweet {margin: auto !important;}

@getify's storytelling is just 🚀 #jsnation #amsterdamjs

— @GonchuB

function notifyResize(height) {height = height ? height : document.documentElement.offsetHeight; var resized = false; if (window.donkey && donkey.resize) {donkey.resize(height); resized = true;}if (parent && parent._resizeIframe) {var obj = {iframe: window.frameElement, height: height}; parent._resizeIframe(obj); resized = true;}if (window.location && window.location.hash === "#amp=1" && window.parent && window.parent.postMessage) {window.parent.postMessage({sentinel: "amp", type: "embed-size", height: height}, "*");}if (window.webkit && window.webkit.messageHandlers && window.webkit.messageHandlers.resize) {window.webkit.messageHandlers.resize.postMessage(height); resized = true;}return resized;}twttr.events.bind('rendered', function (event) {notifyResize();}); twttr.events.bind('resize', function (event) {notifyResize();});if (parent && parent._resizeIframe) {var maxWidth = parseInt(window.frameElement.getAttribute("width")); if ( 500 < maxWidth) {window.frameElement.setAttribute("width", "500");}}

In-between the presentations, I managed to talk to some of the sponsors of the event, like DAZN and Reaktor; and the guy from DAZN, while being a technical recruiter and not exactly that much into development, said that Kyle’s talk was something he could totally relate to: he was amazed by Kyle’s vision and magnetism and presentation’s overall message that future depended and belonged to every single one of us.

Kyle and the future

And then there were talks by Krzysztof Kotowicz who talked about the Trusted Types, Gleb Bahmutov talking on testing with Cypress, Tobias Koppers — on upcoming changes in Webpack, and Henry Zhou — on his Open Source journey; all of those three I was happy to interview before and after the conference. If you’re interested in hearing them out after the event took place, you’ll have to wait until all of those interviews and movies are out. So be patient, take your time, and you’ll see for yourself.

body[data-twttr-rendered="true"] {background-color: transparent;}.twitter-tweet {margin: auto !important;}

I loved speaking at #JSNation and here is my view before the presentation started. Find the slides with end-to-end testing, https://t.co/4Xqic6nIJG, visual testing and code coverage all working together here https://t.co/lbvmtCbw7J

— @bahmutov

function notifyResize(height) {height = height ? height : document.documentElement.offsetHeight; var resized = false; if (window.donkey && donkey.resize) {donkey.resize(height); resized = true;}if (parent && parent._resizeIframe) {var obj = {iframe: window.frameElement, height: height}; parent._resizeIframe(obj); resized = true;}if (window.location && window.location.hash === "#amp=1" && window.parent && window.parent.postMessage) {window.parent.postMessage({sentinel: "amp", type: "embed-size", height: height}, "*");}if (window.webkit && window.webkit.messageHandlers && window.webkit.messageHandlers.resize) {window.webkit.messageHandlers.resize.postMessage(height); resized = true;}return resized;}twttr.events.bind('rendered', function (event) {notifyResize();}); twttr.events.bind('resize', function (event) {notifyResize();});if (parent && parent._resizeIframe) {var maxWidth = parseInt(window.frameElement.getAttribute("width")); if ( 500 < maxWidth) {window.frameElement.setAttribute("width", "500");}}

While Gleb Bahmutov was cracking jokes and making fun with testing on and off stage, Andre Staltz was super serious about functional lenses, the subject he chose for his presentation. The guys I interviewed afterward, including the Reaktor reps, were particularly amazed by the practicality and applicability of everything Andre talked about.

Andre (on the right) unexpectedly prepares for the afterparty performance

After a lunch break and some lightning talks, Minko Gechev took the stage and was completely nailing it. I’d already mentioned that while every other talk by Minko I watched before were too much to handle due to the speed of his speech, but the talk at JSNation 2019 was the most relaxed talk he ever made. It was super exciting and very easy to follow. Minko talked about building fast Angular applications, the subject that got Max, the MC, very excited about, because he worked in Angular, and actually gave a talk at JS Nation 2018 about performance issues in the framework as well.

body[data-twttr-rendered="true"] {background-color: transparent;}.twitter-tweet {margin: auto !important;}

Friend of mine @mgechev from the @angular core team is presenting about performance at #JSNation @amsterdamjs conf in Amsterdam! It's a great pleasure to introduce him on the stage again, after just a week from @ngVikingsConf :)

— @webmaxru

function notifyResize(height) {height = height ? height : document.documentElement.offsetHeight; var resized = false; if (window.donkey && donkey.resize) {donkey.resize(height); resized = true;}if (parent && parent._resizeIframe) {var obj = {iframe: window.frameElement, height: height}; parent._resizeIframe(obj); resized = true;}if (window.location && window.location.hash === "#amp=1" && window.parent && window.parent.postMessage) {window.parent.postMessage({sentinel: "amp", type: "embed-size", height: height}, "*");}if (window.webkit && window.webkit.messageHandlers && window.webkit.messageHandlers.resize) {window.webkit.messageHandlers.resize.postMessage(height); resized = true;}return resized;}twttr.events.bind('rendered', function (event) {notifyResize();}); twttr.events.bind('resize', function (event) {notifyResize();});if (parent && parent._resizeIframe) {var maxWidth = parseInt(window.frameElement.getAttribute("width")); if ( 500 < maxWidth) {window.frameElement.setAttribute("width", "500");}}

And then, there were Michel Weststrate (who won the OSS awards for Immer) talking about immutability and proxies; Mat Groves, who just blew the crowd away with all the stuff you could possibly create thanks to PixiJS; Christian Bromann speaking on automated performance testing with WebDriver, and, finally, David Rousset on using WebGL and PWA to build an adaptive game for touch, mouse, and VR devices.

body[data-twttr-rendered="true"] {background-color: transparent;}.twitter-tweet {margin: auto !important;}

100000 objects in real-time at >30FPS... in a web browser! @Doormat23 is blowing minds 🤯 at #jsnation

— @roikles

function notifyResize(height) {height = height ? height : document.documentElement.offsetHeight; var resized = false; if (window.donkey && donkey.resize) {donkey.resize(height); resized = true;}if (parent && parent._resizeIframe) {var obj = {iframe: window.frameElement, height: height}; parent._resizeIframe(obj); resized = true;}if (window.location && window.location.hash === "#amp=1" && window.parent && window.parent.postMessage) {window.parent.postMessage({sentinel: "amp", type: "embed-size", height: height}, "*");}if (window.webkit && window.webkit.messageHandlers && window.webkit.messageHandlers.resize) {window.webkit.messageHandlers.resize.postMessage(height); resized = true;}return resized;}twttr.events.bind('rendered', function (event) {notifyResize();}); twttr.events.bind('resize', function (event) {notifyResize();});if (parent && parent._resizeIframe) {var maxWidth = parseInt(window.frameElement.getAttribute("width")); if ( 500 < maxWidth) {window.frameElement.setAttribute("width", "500");}}

Mat Groves and David Rousset’s talks got everyone in the audience literally glued to the screen because of so many fantastic visuals and sort of tangible representations of the work they were doing: the crowd was cheering, everyone forgot about their phones and just stared at all the magnificent beauty happening on stage. David wore his VR glasses and played the game he created while everyone watched in one of the most silent moments of complete and utter awe. During those visual talks, everyone stopped tweeting, even Gleb Bahmutov, who was tweeting literally all the time during the conference, so it was really worth seeing, even though at the end of the day, no one seemed to care pretty much about anything but afterparty. Turned out — not really; we were all watching other people on stage playing their own games or showing off their creations live.

body[data-twttr-rendered="true"] {background-color: transparent;}.twitter-tweet {margin: auto !important;}

Amazing closing talk by @davrous !! Thank you for such a great event @amsterdamjs 💥! #JSNATION https://t.co/nuw7eMo4ZJ

— @MarieScript

function notifyResize(height) {height = height ? height : document.documentElement.offsetHeight; var resized = false; if (window.donkey && donkey.resize) {donkey.resize(height); resized = true;}if (parent && parent._resizeIframe) {var obj = {iframe: window.frameElement, height: height}; parent._resizeIframe(obj); resized = true;}if (window.location && window.location.hash === "#amp=1" && window.parent && window.parent.postMessage) {window.parent.postMessage({sentinel: "amp", type: "embed-size", height: height}, "*");}if (window.webkit && window.webkit.messageHandlers && window.webkit.messageHandlers.resize) {window.webkit.messageHandlers.resize.postMessage(height); resized = true;}return resized;}twttr.events.bind('rendered', function (event) {notifyResize();}); twttr.events.bind('resize', function (event) {notifyResize();});if (parent && parent._resizeIframe) {var maxWidth = parseInt(window.frameElement.getAttribute("width")); if ( 500 < maxWidth) {window.frameElement.setAttribute("width", "500");}}

The whole 12 hours that I was in the main hall flew like over the cuckoo’s nest, meaning, it felt like I just came in and walked about, all super excited. The best (also the worst) compliment that I got during the conference was Gleb Bahmutov saying that he could actually say the time just by looking at my hair because at 7 am there was all nice and tidy, and by 6 pm, I totally looked messed up. But I never noticed it, because the time just flew. I stepped up to work at 7 am, I finished around 7 pm, and I thought the whole thing took no more than 3 hours because it was such an amazing experience to be able to talk with everyone.

body[data-twttr-rendered="true"] {background-color: transparent;}.twitter-tweet {margin: auto !important;}

Me and my MC-ing colleagues @FloorDrees and @SabrinaVerhage are at the closing ceremony of #JSNation 2019. It was a great pleasure and fun to introduce on the stage my old and new tech speaker friends for 500 attendees of JSNation (ex-@amsterdamjs) conf!

— @webmaxru

function notifyResize(height) {height = height ? height : document.documentElement.offsetHeight; var resized = false; if (window.donkey && donkey.resize) {donkey.resize(height); resized = true;}if (parent && parent._resizeIframe) {var obj = {iframe: window.frameElement, height: height}; parent._resizeIframe(obj); resized = true;}if (window.location && window.location.hash === "#amp=1" && window.parent && window.parent.postMessage) {window.parent.postMessage({sentinel: "amp", type: "embed-size", height: height}, "*");}if (window.webkit && window.webkit.messageHandlers && window.webkit.messageHandlers.resize) {window.webkit.messageHandlers.resize.postMessage(height); resized = true;}return resized;}twttr.events.bind('rendered', function (event) {notifyResize();}); twttr.events.bind('resize', function (event) {notifyResize();});if (parent && parent._resizeIframe) {var maxWidth = parseInt(window.frameElement.getAttribute("width")); if ( 500 < maxWidth) {window.frameElement.setAttribute("width", "500");}}

Soon after the conference, me and Max, the MC, walked out of the building and he was like “Jesus, I promised everyone good weather today.” But it was raining heavily and Max looked sad for a moment. However, before the 60 seconds fully passed he said: “Oh, whatever, we’re gonna go party with everyone anyway.” And I was like: “Okay, that’s the spirit.”

body[data-twttr-rendered="true"] {background-color: transparent;}.twitter-tweet {margin: auto !important;}

@neauoire⁩'s #jsnation performance has begun 😍

— @amsterdamjs

function notifyResize(height) {height = height ? height : document.documentElement.offsetHeight; var resized = false; if (window.donkey && donkey.resize) {donkey.resize(height); resized = true;}if (parent && parent._resizeIframe) {var obj = {iframe: window.frameElement, height: height}; parent._resizeIframe(obj); resized = true;}if (window.location && window.location.hash === "#amp=1" && window.parent && window.parent.postMessage) {window.parent.postMessage({sentinel: "amp", type: "embed-size", height: height}, "*");}if (window.webkit && window.webkit.messageHandlers && window.webkit.messageHandlers.resize) {window.webkit.messageHandlers.resize.postMessage(height); resized = true;}return resized;}twttr.events.bind('rendered', function (event) {notifyResize();}); twttr.events.bind('resize', function (event) {notifyResize();});if (parent && parent._resizeIframe) {var maxWidth = parseInt(window.frameElement.getAttribute("width")); if ( 500 < maxWidth) {window.frameElement.setAttribute("width", "500");}}

The afterparty was super exciting. Before the party, though, at the speakers’ dinner, Max mentioned that if anyone showed up at the afterparty, then the event was deemed to be super successful. You probably won’t believe it, but the hall at the party was super packed. Everyone was drinking, socializing, exchanging numbers and business cards, listening to super weird music accompanied by just as weird visuals. And it felt absolutely natural. Something that you can relate or feel like you belonged to.

Mat Groves trying out David Rousset’s VR glasses at the afterparty

If you ever think if it’s worth visiting another JS conference in Europe or in the States, don’t think too much. Just go.

Pictures and live interviews will be published soon, but you can still watch the recorded live stream from both halls.

General JS hall:

<a href="https://medium.com/media/cbe505e89258289ab87a307797490dd8/href">https://medium.com/media/cbe505e89258289ab87a307797490dd8/href</a>

NodeJS hall:

<a href="https://medium.com/media/1e81761106bbe0c1a3c0005a70176444/href">https://medium.com/media/1e81761106bbe0c1a3c0005a70176444/href</a>

I’m a copywriter from Soshace.com, a hiring platform for web developers. If you have an interesting story to tell, ping me on Twitter @MaryVorontsov