ArmadaJS 2019 - JavaScript Conference

It's no secret that JavaScript is the most popular programming language in the world. Popularity of a programming language or a technology is inevitably followed by a proliferation of language (or technology) specific developer conferences. While general, multi-focus conferences are great for networking and learning, presence of these niche conferences is a clear sign of the strength and vitality of the developer community within that area. JavaScript is a language that is widely adopted here at DEVersity both on the front-end, through React and Angular, and on the back-end, through Node.js. Thus, it's with great pride that we attended the first ever purely JavaScript conference in Serbia - ArmadaJS.


Since the JavaScript developer community in Serbia is not a small one, the only logical venue for such an event was a movie theater multiplex, having in mind that 600 attendees visited the conference. This is especially convenient when we consider that there were 27 talks, organized in 3 parallel tracks. General impression that we were left with is that organizers managed to deliver an extremely professional looking experience. Everything, from the creatives that were shuffling on many of the screens, through the orderly serving of coffee and lunch during breaks, to the Q/A setup during the talks, was indicating a high level of competence when it comes to organizing an event as big as this one.

In the evening of the first day there was a big party with all of the speakers and attendees having fun, networking and mingling.


Are Progressive Web Apps The Future?

After the opening ceremony, Vedrana Tozija took the floor of Room 1 and tried to answer the question from the title of her talk. She first explained why PWAs are important. Shockingly, internet penetration rate in 2018 was only 55% worldwide. Great number of people are still on low bandwidth networks, on low-end phones and that itself is a good reason to employ PWAs, as they consume less network traffic.

Then she went through main topics when creating PWAs - manifest, service workers, push notifications and app shell structure. After expressing some of the limits that are present while building PWAs she concluded that the future is definitely bright for this type of applications.

The journeyman's guide to modules in Node.js

We had the pleasure to hear the story behind so many module types in JavaScript, firsthand, from Node.js core contributir Ujjwal Sharma. After explaining how Node.js works under the hood, he took us through the journey of how JavaScript modules came to be, all the way from IIFEs, to CommonJS, AMD, Require.js and ESMs.

Through its brief, but turbulent history, JavaScript modules were adapted to satisfy the purposes of both front-end and back-end JavaScript applications, which is essentially the reason why there isn't a single standard for this crucial language feature. Having in mind his personal experience, he encouraged everybody to become OpenSource contributors and join the awesome team at Node.js.

Accessible JavaScript Applications

One of the immensely important topics, which often gets neglected by software developers is accessibility (short, a11y). The reason why accessibility is important goes without even the need for explanation, so it is how that was the main topic of Stefan Feješ's talk. He expressively demonstrated how people with different disabilities use computers and browse the web. Then, he showed us what we, as software developers, can do to make their web experience better, or in some cases usable at all. This was one of the talks that really left an impression on us and encouraged us at DEVersity to invest more time into leveling up our knowledge and applying it when it comes to building accessible applications.

Creating meaningful animations with JavaScript

Aleksandr Sabov, a UX Engineer working at IBM, talked about JavaScript animations from both UI/UX and development standpoints. We learned when and how to add animations to the user interface in order to improve the user experience.

We even got a recipe from his animation kitchen:
1.   Find a good purpose
2.   Add a bit of meaning
3.   Serve cold with 60FPS

In short, you should not create animations just for the sake of having it but find a meaningful purpose. For example, when an item gets moved from one list to the other (e.g. adding a product to the shopping cart), it’s nice to have a visualization of it. It makes it really clear what was the outcome of the user’s action. Additionally, you should make that transition natural - not just a straight-line move. We saw a nice example how to use Bezier curves for that purpose.

Second part of the lecture was focused on the implementation, and how to make smooth animations without overloading the CPU. We saw few interesting examples, got an overview of how browser renders the animation and how to utilize that to improve performance. For example, moving an element with css translate is much better than changing its position attributes, as translate doesn’t require full execution of pixel pipeline, while positioning requires it, since it changes the layout, thus causing layout to be calculated again.

How to a build full-stack serverless airline ticketing application

As a Specialist Solutions Architect at AWS, Heitor Lessa helps businesses and organizations to design applications and products in the cloud. That’s why he’s usually on the back-end and DevOps side of the table. We were honored to hear Heitor’s talk on his first-ever JavaScript conference.

We saw his journey of making a simple Airline ticketing app using Vue.js and AWS serverless tools like AppSync, Lambda functions, API Gateway, Amplify, Cognito etc.

It was interesting and fun to see how someone who’s not familiar with front-end development got to explore the vast front-end ecosystem, the problems he faced (like spending 5 hours on fixing position of an icon) and solutions he came up with. Attendees were interested in what was the hardest part in the process. The answer is – tooling.

If you’re interested, you can check out the app Heitor built on Github.

Show me your data!

Nenad Kuzmanović, Software Engineer and Team Lead at Seven Bridges, showed us the importance of understanding raw data and how to unveil secrets hidden in them. In a great way, he presented challenges of creating interactive visualizations using SVG, Canvas, D3.js, and JavaScript.

But maybe the most interesting part was the visualization of bioinformatic data - DNA. If you know where to look, you will see much more than 350Gb of random letters in the human genome. Nenad was involved in creating a tool that is used by laboratories around the world to visualize DNA and to find mutations in them. If you know how to read that data you will be able to see whether someone has a mutation that will make him superhuman. It can be also used in the prenatal tests to see whether there is a potential for the baby to have some disease.

Game of Thrones parallel and possible Westeros alliances just made this talk one of the favorites.

Serverless: a backend thing that gives superpowers to frontend developers

Aleksandar Simović, AWS Serverless Hero and Co-author of Serverless Applications with Node.js shared a very interesting presentation about what serverless has to do with front-end development. Even though serverless is a back-end thing, it gives superpowers to the front-end developers and makes them full stack.

Most important benefits of serverless architecture are auto-scaling and its pricing model. You are able to pay just for what you use. If your idea shows potential, resources can be scaled almost to infinity without you as a developer having to manage the infrastructure. Aleksandar showed an example from a company in which expenses were 10 times smaller after they started using serverless.

The important thing is that front-end developers are not dependent on dev-ops or back-end developers anymore. Aleksandar showed how you can, in just a few lines of code, deploy simple production-ready API, add authorization or custom logic with Lambda. If that is not enough, you can add AI to your application with just one line of code.

React & Redux: Optimizing performance

Igor Šćekić, an experienced full-stack developer and Technical Team Lead at Execom showed us how React & Redux should be used together. Redux is a great state management tool if you use it properly. Igor showed us best practices and also common mistakes and how to fix them.

React is the most popular JS framework in part because it's faster than others. We have learned some tricks on how to optimize our code, and maximize that speed. Also, Igor answered a question on what should be put in component state and what should be in the Redux, and gave some tips on how we can decide.

We have seen how to create a memoized selector and what is the real benefit of using it. There was also a word about how to batch our actions in a proper way.

This presentation was one of the most technically detailed and can be certainly applied to all React & Redux applications.

It's birds all the way down - A fun introduction to Lambda Calculus

Following a good practice of making the last session at a conference the most fun one, organizers have put Lucas da Costa on stage. After a couple of minutes he ruined JavaScript, in his own way. The topic was Lamba calculus, the math behind functional programming. Quickly, we witnessed how all of the features of JavaScript as a programming language can be substituted by only using functions. This little experiment showed us how we can be functional programmers even with a language like JavaScript, which is not necessarily a top mention when speaking about the functional paradigm.

Takeaways and conclusions

JavaScript is eating the software developer world, there's no doubt about that. ArmadaJS just confirmed that thesis by bringing so many great speakers, which in turn attracted such a large number of visitors.

This conference also confirmed some of the trends that can be sensed in the online community
  1. React is the number one framework when it comes to front-end development
  2. Vue.js is quickly gaining popularity
  3. Angular is dead
  4. Testing has come to JavaScript world, almost to the level where RubyOnRails brought it.
If there is one thing that might we might suggest for future ArmadaJS conferences it's including more talks regarding back-end JavaScript. Majority of the talks were focused on front-end JavaScript, which is the origin of the languague, but JavaScript is big on the back-end too, especially with the emergence of Serverless, where JavaScript is a first class citizen. More topics on back-end JavaScript would be very welcome from our point of view.

There was actually a thing that we literally have taken away! In a q/a contest we won this awesome book, Serverless Applications with Node.js, written by Slobodan Stojanović and Aleksandar Simović. A great addition to our company library.

All in all, it was a great event and we're already looking forward to visiting it next year too. First speakers have already been announced.