PieSoft at HolyJS in Moscow

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

We also hope that 2019 will be rich in such informative and productive events like 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 listen to about three dozen reports on the frontend and even more, to discuss the constantly evolving ecosystem, relevant tools, frameworks, patterns, etc. with leading experts in the field. It also covered new areas, such as the backend and the desktop.

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

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

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 popular 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).

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

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 activities the conference offered, but it was not easy due to our busy schedule. As for me, it was the first experience of participating in such an event. I really wanted to go there, see how the conference of this kind is held, listen to smart people.

I wouldn't say I had a short list of speakers to meet, but there were a couple of targeted reports I was interested in first. I focused on the category “for practitioners” mostly. There were also a couple of “introductions” and “hardcores”.

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 very interesting, the speaker shared a number of striking 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, what are its advantages over Redux. Of course, he was as tactful as possible and he didn’t say that, well, my library is better. He just mentioned that this is a new way of looking at managing the state - and that was quite interesting.

Further, at 12.00 pm, 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 subsequently become more backend or maybe even full-stack developer, this performance was quite informative for me.

At 2.00 pm, I was listening to Stas Kurilov (JetBrains) speaking about diving deep into webpack. It was a good report and also an interesting topic for us as practicing front-end developers. It was interesting to go deeper into the webpack as a means of putting 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 own case, showed how he solved problems and shared a lot of technical stuff.

(in Russian) Double deep penetration in webpack

4.00 pm was the time of Pavel Chertorogov (Roga i Kopyta) and his report Building a GraphQL-server. GraphQL is a special library that helps the backend and front-end developers interact. This is the standard communication mechanism based on Ajax requests. In the classical scheme, it works like this: the front-end makes a request to 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 for example that you are only interested in his or her gender. Actually, the backend can send all the information on such a request, but in fact you only get one “gender” field. This makes it easier to control the data you work with, and simplifies life greatly. So, this report was an interesting experience.

From 2 to 4 pm, there was another important 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 really 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 in modern web applications you need to go in this direction as well. It’s just a huge 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 such an outsourcing mentality, when you want to make it quickly, throw in production, and then, if there is a possibility and time and desire, accessibility and everything else are added. In general, this is an optional thing for most applications, if you do not take into account some 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 it was nice to listen to the people with the similar opinion. They didn't actually discussed 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, then it exists somewhere in a parallel universe. We should definitely concentrate more on this issue and move in this direction as well.

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 personal fatigue have done the trick - and I went to the hotel for some rest.

Day 2

The beginning of the second day was slightly overshadowed by one small problem. I lost my pass! We are checking out of the hotel - and I can't find it anywhere! This happens so rarely 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 the additional events like BoFs and the others as 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 own vision of an alternative Internet.

At 12:00 pm 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, the current state of languages analysis, and showed his own vision of the types systems future. Church encoding. Lambda cube. Linear types. Hardcore in the flesh.

At 4.00 pm, I attended the most interesting address for me - 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 user personal account. Many fields there 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 quite difficult to manage all this stuff. Difficult, but possible, of course. But I believe that it’d be a big omission not to use the react-form library. Yes, you can cope with it on your own, but without this library it all looks like reinventing the wheel. So, I made some notes, because the react-form library is known in several variations, and I am ready to get to know this library much better than it was before. Once I heard about it, but ignored for some reason. Erik Rasmussen showed us some cases where the library can be useful, and I realized that it is very cool. I’ve already had a couple of projects where I lacked something like that - connect this library and make the life easier. That’s great. That’s what all developers want. Yes, and I really liked the speaker.

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 are going to be proportional to the number of developers involved in the project. This problem can be solved by such libraries as Flutter.io. Or by it’s popular alternative React Native. The last one appeared earlier, established itself so well in the international market, and most professionals involved in developing of such cross-platform applications tend to use React Native. Flutter.io also seems to be gaining popularity nowaday. So it was interesting for me to listen to the speaker. To be honest, 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 very unlikely 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 frontend. But in fact we were rather told where we can meet Data Science in the frontend. For example, here you have the size of your final file. The application, generally, has several modules if it’s more or less large. These several modules are then compressed into a huge file by the webpack which I mentioned earlier, and this thing is 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 just expecting something different.Something great that we can build into the frontend, maybe create cool graphics based on huge, incredible data set, connect an additional library, 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 was 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:

In general, the conference was mega productive. I’ve got a lot of useful 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, made some notes - and I returned from Moscow with a list of technologies I should pay attention to, because I saw that it is interesting to people, developers, they are already in the trend. The other trends are hardly distinguishable today, but they seem to have a good future.

The other our colleague Eugene Lukashkin also visited HolyJS. He agrees that the conference was super informative and also notes a huge number of interesting tasks from the sponsors he eagerly solved (up to 50). Smart 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 in order to solve them - just simple logic. There were small prizes for the right answers. Here is the example of not so difficult 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 in order to get the price one had to solve several of such tasks. Here is the Eugene’s trophy for the most difficult question:

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

All in all, it was a really impressive conference that gave us plenty of useful information, positive impressions (and also prizes for Eugene =)) Thanks to the organizers for the warm welcome, the speakers for the hyper helpful 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