Web Unleashed 2019, Toronto

Web Unleashed 2019 in Toronto is a conference focused towards front-end web development with many great sessions ranging from technical to inspirational.

Regardless of your expertise or interest, there were many presentations and panels to choose from, the following were some favorites:

Slam Dunk Your JavaScript Fundamentals

Wes Bos’s Slam Dunk Your JavaScript Fundamentals provided a flood of information, ranging from JS tips and tricks to cool demonstrations for browser based face and speech recognition.

The Chrome FaceDetection API demonstration was fun and highlighted some unknown browser capabilities to me.

Wes has many great training courses including a 30 day vanilla JS challenge - check it out!

Serverless Isn’t Just Great, It’s the Greatest… Almost

Serverless Isn’t Just Great, It’s the Greatest… Almost was a discussion panel focused on looking at some of the latest changes in DevOps due to Serverless architecture. I found it refreshing that the panelists did not only focus on positive reasons to move towards Serverless but also discussed limitations and key criteria for when to choose or avoid Serverless based on your requirements.

One advantage for utilizing a Serverless Architecture is for saving cost. For example, if you need to perform a task infrequently, or with inconsistent traffic, rather than keeping a server running constantly, a Serverless approach would handle spikes in traffic or an infrequently run task and you only pay for what you use, not for the time that the server is sitting idle.

The main Serverless drawbacks mentioned in this session are 'Cold Starts' and limited execution duration. Cold Start refers to the latency involved when an instance of a function is initialized. If a function is frequently used, this may not be a cause for concern, however an infrequently used function may require anywhere from 400ms to 1.1s to complete. Execution duration is another potential limitation with Serverless functions, for example, AWS Lambda functions can run from a maximum of 15 minutes (up from 5 minutes). Depending on the type of function, this may be a deciding factor.

Let’s Web Dev Like It’s 1999!

Ben Ilegbodu’s Let’s Web Dev Like It’s 1999! was a very funny and informative talk on how things have changed in web development over the years. I could easily relate with many of the examples Ben walked through (anyone remember FRAMESET based pages and working on the live site using FTP?), it makes you appreciate some of the tooling and workflow that is now taken for granted.

Build Scalable APIs Using GraphQL and Serverless

Simona Cotin’s Build Scalable APIs Using GraphQL and Serverless session was a good look at GraphQL concepts including the query language, resolvers and mutations. Simona then demonstrated how to deploy a GraphQL server to a serverless function. GraphQL was a prominent topic throughout the conference and I enjoyed learning more about it.

GraphQL

I took some time to look at why GraphQL is becoming more and more popular.

GraphQL is a query language for APIs used as an alternative to REST. A couple of key highlights and comparisons include:

  • With REST, typically many requests need to be made to retrieve the data required, such as one request to obtain Car Manufacturers and a second request to obtain the available Models. With GraphQL, this could be a single request, even though the data is coming from two entities.
  • Continuing the Car example, with REST if we fetch our list of Manufacturers from the available endpoint, we will receive every property in return, whether we need it or not. With GraphQL we can specify that we only require the Name and ID.
  • There are some powerful developer tools available, such as GraphiQL, which is an in-browser GraphQL IDE.

In summary

Overall, it was a fun couple of days! The conference was well organized with great speakers and a nice variety of sessions to choose from. It is inspiring to listen to the personal experiences of others and learning about some of the changes in the front-end development space.