A. Davydov: It's vital not to stop and find new solutions

An Open Source enthusiast and one of the core developers of the Ruby-framework Hanami shares ideas about Hanami, Ruby and the developer's life
10 August

Anton Davydov
Anton Davydov

An Open Source enthusiast and one of the core developers of the Ruby-framework Hanami.

On the eve of RailsClub 2017, on which Anton will be one of the speaks, we questioned him about the job and his views on Ruby development.

What are you working on right now?

I am working for a Healthcare start-up, which can improve the lives of so many people in the US. Unfortunately, I can't tell you more about it as I have signed the NDA. Talking about Open Source projects, now we are working on the version of Hanami 1.1. Besides, Sergey and I create a library for Event Sourcing in Hanami. It already works without a global state as well as does subscribe & broadcast for events, supports multiple adapters and allows you to easily add your own ones. The library is to have much more cool features in the future, such as retries, the construction of the event tree and eventbox documentation.

Isn't there something similar in Ruby with the Wisper gem...

Yes, it is very similar, but Wisper implements pub/sub only in the memory of one instance, while we want to allow the developer to choose how to process such messages: in one instance or to scale a few.

What about new adapters? How will they be added?

You just have to resolve them into a container. For now, we have in-memory and Redis adapters which you can play with. Kafka, RabbitMQ and, probably, PostgreSQL will show up in the future. 

What is your view on the development of Hanami in the next four years?

As now there's definitely a monopoly of Rails, I would like to see a worthy alternative in Hanami. This will allow all frameworks to develop. Thus, Hanami already solves business problems and many developers are inspired by this tool. I hope that in the future we will manage to view on Ruby as a dying language and popularize new ideas.

Do you think Hanami can become a mainstream in the future?

I've noticed some significant changes in the attitude towards the framework and its ecosystem over the last year. To measure it you have to take a look at the gems downloading scale, the frequency of the posts publishing, the conferences'references. A year ago, when people heard about Hanami, they would circle a first finger by a temple, whereas now they come up and tell us that they enjoy the framework, and they are already using it.

Why do you think it was Rails that became the standard in Ruby development?

To my mind, there are several reasons for this. Firstly, everyone was tired of verbose Java- and PHP-frameworks, so there was a need to create a simple and operative solution. Secondly, the framework allows you to quickly launch products, the creation of which in other languages would take weeks and even months. For many of the developers it was like a breath of fresh air and Rails has quickly gained popularity.
Now, there is no other MVC-framework of full value except for Rails. There are Sinatra and other http-frameworks out there, but they do not provide the developers with the opportunity to start working on business tasks with just one command.

In your opinion, what are the problems the Ruby community is facing right now?

Well, a lot of my friends are saying or have said that they are too bored with Ruby. They do the same thing day after day, which, consequently, kills the motivation, that's why a lot of them begin to study other languages ​​and technologies. People lack something radically new, some ideas that will allow them to look at their work from the different perspective.
It is vital not to stop and find conceptually new solutions, which nowadays the guys from dry/rom are busy with. Unfortunately, any new approach - not only in Ruby - is almost always perceived with hostility. On the one hand, some criticality should definitely take place, however, it usually kills the motivation to move on and grow as a community.

What is the path of the Ruby developer for you in general?

There's no single answer for this question, I guess. In my opinion, a good developer is interested in the capabilities of different languages and systems. If so, the specialist himself is to decide what is good for him and what is not. Thus, they would be able to choose really useful approaches to be used in work in the future.

Which gem, in your opinion, can serve as an example of an ideal code?

I certainly would not point at Ruby core (laughs). it's  quite hard to talk about such ephemeral concepts as the quality and the beauty of the code as I myself can't say that I write a good, so I do not always like it. To me, the best gems are those that simply solve existing problems and do not create new ones.

How do you learn something new about Ruby? Do you read blogs or use other sources?

I like link aggregators, e.g. Reddit. I also use RSS, which allows you to get acquainted with different points of view on the same problem.
For example, an article appeared recently about why Hanami is bad. There was, in fact, the only one point: the call method is magically called in the framework. The majority of the community was trying hard to explain that this was normal: excessive explicitness hurts sometimes. It's very interesting to read such things as you start to look at things from a different angle.
I also have my own Telegram channel, and the followers often send me some interesting links.

You were doing a platform for a collaboration on the Open Source-projects of OSS Board, weren't you. Are you still working on this project?

That's correct, I continue working on it right now. It seems to me that I failed to promote the OSS Board properly. That's very difficult to find people who will create tasks there and do them, especially when the task is slightly more difficult than making changes to the form. The main problem of the project is the search for specialists who will be able to add a well-described task as you need to monitor it, update it and communicate with the developers, which is actually is a very great work. However, there are still people who help, which I am very grateful for.

What do you consider your greatest achievement in the career?

I received more than 80 comments with questions about each line on one of the pull request in Rails. I never finished it, but as a result I started take such things easier.
On top of that, I finished the project in Google Summer of Code, while a lot of people give up in the first month, even more - on the second, and only a few gets to the end.

What kind of project was it?

This was a plugin for Sidekiq, which shows the statistics for all the tasks. Unfortunately, I've abandoned it due to the lack of time, although it is a fairly popular library.

What are your main achievements in life?

To me, it is that I did not shy away from speaking in English for the first time in my life at the conference EuRuKo-2016 in Sofia in front of the audience of 700 people. It is way easier to make a report in Russian as this is your mother tongue. You can imagine that it is very anxiously when you do not know English well and do not have the experience of such performances.

In your opinion, who from the Open Source developers can be considered an example to follow?

It's definitely worth it to look at what other developers are doing. They generate and implement interesting ideas that you can help to develop or just take a good note. However, first of all you need to focus on yourself and not compare yourself with others.

What are you going to talk about at the conference and why is it worth listening to?

I am to talk about the experience. I've been working not only on the framework, but also on its ecosystem for the last year and a half. To some extent I can be called a developer advocate of the Hanami framework. Thus, I will talk about why this work is needed, what mistakes I've made along the way and how to take this experience and apply it to another framework or technology.

A. Davidov: "I like when my work is helpful for people"

Software developer. Open source enthusiast, Hanami core, Ruby Hero 2016, speaker at RailsClub 2017
18 October

Anton Davidov
Anton Davidov at RailsClub 2017

Software developer. Open source enthusiast, Hanami core, Ruby Hero, speaker at RailsClub 2017

On the RailsClub 2017, we’ve managed to talk with Anton about his report, his job and future of programming.

What's your name? Where do you work, what do you do?

My name is Anton, I work at the American start-up. We are developing a healthcare application to help people in America buy and receive the right medicines. There are some issues with it in US. Unfortunately, we are not yet released, so I can not name the place where I work. But if you ask me about this in a month or two, I'll say. At work, we use full dry stack (dry web and rom), also we have several services on hanami.

How do you like RailsClub?

This is my fourth RailsClub. I am very happy to come every year, see many new faces, communicate with old friends, learn something new, discuss problems, and have fun.

Tell me about your report.

In my report I will motivate people not afraid to code in open source, because I believe that there are some problems in the community and by my report I want to try to solve them. This is absolutely not a technical report. Its main goal is motivation. I will be very happy if after today, at least one or two people will stop being afraid to make a mistake and do something. I will tell you about my mistakes and problems, about other people's mistakes. It is important for me to convey that the errors is normal.

What do you think are the most popular technologies?

If to speak in general - machine learning is still in hype, and people are trying to do something on it, at least in Russia. A lot of people talk about the blockchain, trying to mine Ether, buying farms for millions. And if we talk about programming and about Ruby in particular, this is an interesting question. We can say that the functional languages ​​are in hype, but it seems to me that this is far from being the case. There is a cult around functional languages, and people are just trying to be involved in it. Also, now it is a trend (like 10 years ago) the problem solutions. I mean - people have a problem that they are trying to solve it. That's the way dry, rom, hanami, trailblazer appeared; that's the way other programming languages like Crystal appeared.

How do you see the programming world in 10 and 50 years and is there a place for Rail and Ruby?

The world of programming in 10 years I see as my place of work in 10 years - I mean, I can't see it. But if I fantasize, I'd like to see something like cyberpunk from the novels "Neuromantic" when people directly connected to the computer through a neural interface with full immersion. I would like to see that people will go somewhere in this direction.

What advice would you give to an average programmer in order to stand out the crowd? 

The first advice - do not be afraid to talk about problems. People everywhere face problems, and in IT too. If a person tells about his problem and how he solved it, other people can get benefit from it. The second advice is to solve problems not only at work, but also in the community - to engage in open source, to do conferences, to speak and write good articles.

People in other spheres, for example, in aircraft building, feel great joy and enthusiasm after the end of the big project. What in your job brings such feelings?

This is a funny question for me, not even in terms of the question itself. While studying at the institute, I was practicing at an aircraft plant in the department of indestructible control. I've seen that atmosphere and people are not always happy when they make big planes. They usually have problems like that the spare part for a million rubles came with micro cracks and somehow it needs to be used, so as a result the aircraft does not fall apart.
I really like it when I get a good feedback. When my work was useful for someone. Then I feel the excitement. Speaking more broadly - all my work is aimed at getting a good feedback and solving people's problems.

Do you have nightmares related to work?

I have one nightmare related to my work - I start Rails coding again. Seriously, for almost a year I have not touched the Rails at all. And I grew a big beard and hair on my head, I began to sleep better.

Do you have plans for writing books?

Fortunately, no. I have dyslexia, it is difficult for me to write texts sometimes. The biggest thing that I have is a channel in a telegram where I write large messages by the standards of telegram channels. I had an idea to try to collect this all in a heap and make a huge collection or a reference book, there are many related topics. But in general, I do not see myself as a writer. At school, I had an assessment between 1 and 2 in Russian, so for me it's really difficult.

As far as I know, your report was last at Rails Club for few times already. Why is it so and how do you feel about it?

I was the last in 2015 and 2017. In 2015, I had a lightning talk, it just turned out to be the last of 3. This year I specifically asked to put me in the end. I will not have a technical report and I will be able to motivate someone. The idea is that people will get tired of listening to some complicated technical things and think with their heads for 8 hours in a row, it's like a working day. At the end of the day, people want some kind of show, and just my report will be that show. And, secondly, I would be pleased if people leave the conference with a feeling of excitement.