PieSoft at HolyJS in Moscow

Summing up 2018, it’s important to note that this has been an active year. Every day, we were finding something out, developing and moving rapidly in 2019, because undoubtedly it’s about to get even crazier, funnier, and much more enjoyable.

We also hope that 2019 will be rich in such informative and productive events as, for example, the conference of JavaScript developers of HolyJS that took place on November 24-25, 2018. That weekend, more than 600 JS specialists met under the roof of Radisson Royal Moscow Hotel congress park to discuss the constantly evolving ecosystem, relevant tools, frameworks, patterns, etc., with leading experts in the field.

Due to a large number of speakers, all reports at the conference were divided into three streams:

  • an introduction to technology;
  • for practicing engineers;
  • hardcore.

But first things first. Follow our storyteller and participant of the conference Vladimir Markov to understand the whole scope of the event entirely, learn more about the insights and impressions that our guys experienced there.

In addition, the star attraction arrived in the evening – the geek band Scientific-Technical Rap (НТР in Russian) from Russia, playing nerdcore or intellectual hip-hop and glorifying the realities of IT specialists, famous scientists, and famous theorems. In the end, three BoF sessions on topical issues were organized – Stay on client side (EN); What about Node.js? (En); Developer Tools (RU).

Day 1

The conference was held in the very center of Moscow, opposite the House of Government. We tried our best to cover all the panel’s activities, but it was not accessible due to our busy schedule. As for me, it was my first experience participating in such an event. I wanted to go there, see how a conference of this kind is held, listen to intelligent people.

I wouldn’t say I had a shortlist of speakers to meet, but there were a couple of targeted reports I was interested in first. I focused on the category “for practitioners” mainly. There were also a couple of “introductions” and “hardcore.”

In the morning, right from the station and even without checking in the hotel, we rushed to the conference and were just in time for the first address at 10.30 am by Michel Weststrate from Mendix. The report was exciting. The speaker shared several unique concepts, in particular, such a thing as MobX – an alternative for react developers. There’s this Redux library for the global state management of an application. And MobX is an alternative. He showed us how it works under the hood and its advantages over Redux. Of course, he was as discreet as possible, and he didn’t say that, well, my library is better. He mentioned that this is a new way of managing the state, which was quite interesting.

Further, at noon, I decided to attend the address of Kamil Myśliwiec (NestJS) Revealing framework fundamentals: NestJS behind the curtain. Of course, the report was more relevant for backend developers, and I am a front-end. But considering my plans to become more backend or maybe even full-stack developer subsequently, this performance was quite informative for me.

At 2.00 pm, I listened to Stas Kurilov (JetBrains) speaking about diving deep into webpack. It was a good report and an interesting topic for us as practicing front-end developers. It was interesting to go deeper into the webpack to put together all the dependencies and modules that the application has – and work with them. This is an integral part of front-end developer work. Also, the speaker gave an example of his case, showed how he solved problems, and shared a lot of technical stuff.

Double deep penetration in webpack at HolyJS
(in Russian) Double deep penetration in webpack – injecting humor into sophisticated Front-end theme at HolyJS

4.00 pm was the time of Pavel Chertorogov (Roga i Kopyta) and his report Building a GraphQL-server. GraphQL is a particular library that helps the backend and front-end developers interact. This is the standard communication mechanism based on Ajax requests. The classical scheme works like this: the front-end requests the backend: “Send me the information about the person.” The backend knows what information to send in response: name, gender, age, place of study, work, date of death, etc. The main feature of GraphQL is that you do not just send a request “Send me the information about the person,” but from the very beginning, you are modeling the version of the answer you want to receive. And the backend takes into account this feature. So you write, like: “Send me the information about the person” and indicate that you are only interested in their gender. The backend can send all the information on such a request, but you only get one “gender” field. This makes it easier to control the data you work with and simplifies life immensely. So, this report was an exciting experience.

From 2 to 4 pm, there was another vital conference moment – lunch. The food was pretty good – satisfying and tasty – and what else does the developer need?

Unfortunately, I couldn’t attend the 5.30 pm address because of the check-in at the hotel. But just after it, I managed to visit a special discussion zone and talk to the speaker Theodore Veritas (Workable), a little bit. He was presenting a pretty uncommon issue for our region – accessibility. And it was a report for beginners. But I wanted to get into the discussion because I, as a web developer, feel that accessibility is not paid enough attention to. And it seems to me that you need to go in this direction in modern web applications. It’s just a massive piece of work, and often developers think like this: ok, let’s do it at least for people who have no problems with perception of information, and then maybe we will think about the others. This is an outsourcing mentality. When you want to make it quickly, throw it in production. Then, if there is a possibility and time and desire, accessibility and everything else are added. In general, this is optional for most applications if you do not consider mega-applications – large, international, where accessibility is already standard and performed at a high level.

Therefore, it was interesting. I can’t say that I was delivered some cardinally new information, but listening to people with a similar opinion was nice. They didn’t discuss any technologies helping achieve accessibility. There were a few statements that you need to devote more time to this. It’s not right to think that if this does not concern you and your loved ones, it exists somewhere in a parallel universe. We should concentrate more on this issue and move in this direction.

Well, now we’ve come to the end of my first such a tense and intense day. No matter how hard I tried to resist it – a long journey, a ton of information delivered at the conference, and the emotional fatigue have done the trick – I went to the hotel for some rest.

PieSoft Software Developer at HolyJS
PieSoft developer Eugene Lukashkin at HolyJS

Day 2

A tiny problem slightly overshadowed the beginning of the second day. I lost my pass! We are checking out the hotel – and I can’t find it anywhere! This rarely happens to me, so I was pretty confused and didn’t know what to do. But at the conference registration desk, it turned out to be no problem at all – they quickly helped me and printed out a new document – that’s all.

The second day wasn’t as overloaded with additional events like BoFs and the first one. After a restful night of sleep, I’d love to visit them, though.

At 10.30 am, I decided to listen to Viktor Grishchenko about the decentralized web. The report surprised me a bit. It was even strange that it fell into the category for practicing engineers. It was something like a personal look into the future, there were even some real cases, but in general, the speaker presented his vision of an alternative Internet.

At noon I decided to dig deeper and attended the address There is a bluebird in my talk that wants to get out by Lucas da Costa (Converge). It was a real hardcore raising many high-level issues related to higher mathematics: examples of various functions, expressions, lambda calculus, etc.

At 2.00 pm, Vyacheslav Shebanov (VKontakte) presented type systems “in a nutshell.” Of course, the speaker failed to cut a long story short because the issue was too versatile. He talked about the type systems history and the current state of languages analysis and showed his vision of the future of the types systems. Church encoding. Lambda cube. Linear types. Hardcore in the flesh.

At 4.00 pm, I attended the most exciting address – Erik Rasmussen’s Final Form: Form state management via Observers. The speaker is the react-form library creator. You integrate this library into your application. For example, you have a lot of fields for entering user data, let it be a questionnaire, or better, a personal user account. Many areas require the most specific control: for example, it is impossible to leave some fields blank, the others must include only certain symbols, etc. And it is pretty challenging to manage all this stuff. Difficult, but possible, of course. But I believe it’d be a significant omission not to use the react-form library. Yes, you can cope with it on your own, but it all looks like reinventing the wheel without this library. So, I made some notes because the react-form library is known in several variations, and I am ready to know this library much better than before. Once I heard about it but ignored it for some reason. Erik Rasmussen showed us some cases where the library can be helpful, and I realized it is very cool. I’ve already had a couple of projects where I lacked something like that – connect this library and make life easier. That’s great. That’s what all developers want. Yes, and I liked the speaker.

Erik Rasmussen report ar HolyJS
Erik Rasmussen’s Final Form: Form state management via Observers

At 5.00 pm, Ari Lerner introduced us the Flutter.io technology. It was pretty new for me. Today, the concept of writing a single application that will work on mobile phones with different platforms is gaining popularity. Traditionally they do it like this: you take, for example, one iOS developer and one Android developer. They are two different people because a wealth of knowledge is needed in both cases. Therefore, the costs will be proportional to the number of developers involved in the project. Such libraries as Flutter.io can solve this problem. Or by its popular alternative React Native. The last one appeared earlier, established itself so well in the international market, and most professionals involved in developing such cross-platform applications tend to use React Native. Flutter.io also seems to be gaining popularity nowadays. So it was interesting for me to listen to the speaker. I was expecting him to come and say something like this: “Here is Flutter.io, here is React Native, let’s compare them.” Probably, that was my problem because the libraries’ comparison was not even stated in the program. But still, I was hoping to hear it, because the two technologies are very close and everyone understands that they are competitors. But the speaker talked more about Flutter.io, about the Dart language. As a result, I was not particularly convinced, and I’m doubtful to move towards Flutter.

Finally, the last report I listened to was Roman Dvornov’s (Avito) Little Data Science for the big front-end at 7 pm. And again, the speaker failed to meet my expectations (and again, it wasn’t his fault, I guess). Here’s the thing: Data Science on the rise in IT, all these eggheads from Google working day and night and calculating something there and… me so interested in how this technology can be integrated into the front-end. But in fact, we were instead told where we could meet Data Science in the front-end. For example, here, you have the size of your final file. The application, generally, has several modules, if it’s more or less extensive. These modules are then compressed into a massive file by the webpack I mentioned earlier, called a bundle. And it turns out I, as a front-end developer, can analyze the size of this final file (the bundle), and it can help optimize the processes. Well, I guess I was expecting something different. We can build something great into the front-end, maybe create excellent graphics based on massive, incredible data set, connect an additional library, and somehow analyze it. And the lecture was a bit simpler but grounded and practically applicable. Another interesting point is that the speaker, right at the conference, presented the library he had been working on for many months and loaded it onto GitHub. It was very nice that he decided to share this moment with us. Even his hands were shaking. Amazing moment. Here is the address of his work:

Roman Dvornov’s Little Data Science for the big front-end
At the conference, one of the speakers presented the library he had been working on for many months and uploaded it onto GitHub.

In general, the conference was mega-productive. I’ve got a lot of helpful information. It is strange to expect that an hour-long lecture would explain to you the whole point of any issue. Therefore, we came, listened, and made some notes – and I returned from Moscow with a list of technologies I should pay attention to because I saw that it is attractive to developers. They are already in the trend. The other directions are hardly distinguishable today, but they seem to have a promising future.

 PieSoft Software Developer Yauheni Lukashkin at HolyJS
Work hard, play harder.

The other our colleague Eugene Lukashkin also visited HolyJS. He agrees that the conference was super informative and notes many exciting tasks from the sponsors he eagerly solved (up to 50). Intelligent questions were asked everywhere – on the stage during the lecture, in discussion zones, and just in the hall. Very often, the participants even needn’t some special knowledge of technology or higher mathematics to solve them – just simple logic. There were small prizes for the correct answers. Here is an example of not so complex questions:

  • how many numbers from 1 to 1000 have a figure of 3;
  • the fisherman bought a fishing rod 5 m long, but he is not allowed to go to the bus with it because the maximum permitted length for the passenger baggage is 4 meters, so how can the fisherman officially carry the fishing rod on the bus?

But to get the price, one had to solve several such tasks. Here is Eugene’s trophy for the most challenging question:

 java script conference trophy
Yauheni Lukashkin’s trophy at the conference.

Our colleague was also impressed by the stand from Innopolis (a Russian high-tech city): “Everything was so pleasant there – lovely girls, nice presents and great tasks, without any code.”

It was an impressive conference that gave us plenty of helpful information, positive impressions (and prizes for Eugene =)). Thanks to the organizers for the warm welcome, the speakers for the hyper valuable reports, and PieSoft for the opportunity to attend such events and develop ourselves further. We want more! =)

Work with us

We are open to new challenging tasks and we'd love to learn more about your project.

Let's talk