Manchester Web Meetup #11

Empowering JS apps with WebAssembly & Building Healthy On-call Cover

Manchester Web Meetup #11
Manchester Web

11 Meetups and still going strong 💪

I am always amazed at how Manchester Web has continued to grow over the past year. There is always a great turnout. I often see a bunch of familiar faces, but also some newbies that are perhaps dipping their toes into the Manchester Tech community for the first time!

Each event is filled with interesting conversation from a wide variety of people from different backgrounds. Students come to network and learn about different bits of tech, and seasoned veterans come to expand their existing knowledge with topics that they may not be aware of or have the opportunity to work on in their professional day-to-day work.

So what was #11 all about?

Two topics were covered at this event:

  • Empowering JS apps with WebAssembly
  • Building Healthy On-call Cover

Interesting topics, especially for me! I still haven’t dipped my toes into the world of WebAssembly (or WASM, as you’ll often hear it referred as), so listening to someone who has some close-to-the-core knowledge about it was amazing.

Empowering JS apps with WebAssembly

Mariot Tsitoara — Full Stack Developer, Human Network International

WebAssembly is quickly gaining a reputation for enabling the development of high-performance web applications. And it has noticeably struck a chord with the major browser vendors, who are introducing the ability to use WASM in their browsers at the same time…strange right?! Most of us have been used to having to wait for an age for a browser (looking at you IE) to catch up!

Mariot gave us all a very interesting talk about how to empower our web applications using the power of Web Assembly

What stood out is that by using WebAssembly we can cut out some of the work that Javascript normally has to do when processing our code. This is mainly due to the reduction of steps that the Javascript engine has to go through to compile our code into something that can be understood by the browser.

Steps to execute Javascript code
Steps required to execute WASM

It turns out that even for the simplest function Javascript requires a lot of things to happen behind the scene! 😅

A simple addition function
Source: ECMAScript® Language Specification. (Sec. 11.6.1)

One advantage of using WASM is the fact that you don’t have to write code in Assembly (despite being in the name) or Javascript! You can write your code in many different languages including Go, Rust and C#!

For a curated list of supported languages check this Github repository — https://github.com/appcypher/awesome-wasm-langs

This means that you can start writing WebAssembly in a language that you are comfortable with and that you enjoy using 👍

To finish off Mariot displayed a list of features that are going to be making their way into WASM.

More at: https://webassembly.org/docs/future-features/

It would be really interesting to hear a talk that goes deeper into each of these features and how they are being developed. Especially in the case of garbage collection. I find those talks to be really interesting. There is an amazing one by

Aaron Patterson(aka@tenderlove) onMark / Compact Garbage Collectionin Ruby

https://www.youtube.com/watch?v=8Q7M513vewk

Building Healthy On-call Cover

Emanuil Tolev — Community Advocate, Elastic

Next up was Emanuil Tolev, speaking about how to negotiate using his experience with a client and an on-call contract that was agreed to convey his ideas. Now I think that most of us have experienced the wonderful world of on-call support, often after a big release, so the previous sentence may make you think that this is going to be a story of how he handled being on call like a boss! You know, explaining good practices and principals, right?

Well…the best stories start with some kind of struggle 🙈

The story starts with Emanuil explaining how he agreed to a 24/7 on-call support contract for TWO clients — for under the market rate for such a service. And he explains the sacrifices you have to make when you agree to do this:

  • You can’t fly
  • You can’t go to the cinema (mobile signal is not great)
  • You can’t drink…okay…maybe a light beer 👌

And a few more…

If you wanted to do any of these things then you would have to tell the client that you were not able to support for an agreed amount of time, or you would need to get somebody to provide some cover while you are indisposed.

This is something that someone could handle for a little while. However, Emanuil had been doing this for FOUR YEARS! Crazy right?! 😲

He explains the eventual toll this takes on your health and mental well-being. Being restricted to what you can do outside of your normal working hours due to having to be constantly available without any support is enough to break even the strongest of wills.

I’m not going to spoil his story, but you will be able to see a video on YouTube soon where he continues the story and shares how he tackled this particular predicament.

What were the outcomes?

After this story, Emanuil goes into detail about how to negotiate with people to get an outcome that is beneficial to all parties involved. Try not to oversell yourself so you don’t end up offering more than you can handle. This is what can cause inevitable burnout.

Sometimes the best option may be to walk away if the client pushes for an agreement that you find to be unreasonable. As was conveyed in the story, an agreement that is not in your best interest, in the long run, can do more damage than is worth the financial compensation.

Summary

Overall this was another awesome event. And the introduction of a talk that wasn’t as “techy” as we’ve had previously was, I think, highly valuable to all that attended. After all, being in the tech industry isn’t always about how good you are at your job (although it certainly helps), but also about how you can sell yourself and what value you can add to your new potential employer or client. And being good at selling yourself empowers you to negotiate for the best deal you can get.

Thank you

Code Computerlovefor hosting the event, andJames WrightandYLDfor continuing to organise this meetup! 🍻