📜 ⬆️ ⬇️

Opensource helps us to build and live: an interview with Yii Framework developer Alexander Makarov



Recently, Alexander Makarov, a longtime member of the core team of the Yii framework, joined Skyeng. I could not miss such an information guide and went to Voronezh to ask Sasha about life in the open source world, the prospects for participation in the development of free software and the combination of such development with a full rate.

How did you become a member of the core team Yii?

He worked as a Java-developer in Murano Software, made his projects: a blog, some small part-time work on layout. Hosting for Java at that time was expensive, so I began to move in the direction of PHP, especially since I was dealing with it at the university. At first I wrote on PHP naked, but everything turned into a mess, so I began to study frameworks. I looked at Zend, it was easier to deploy there, but still it was clear, it was too heaped up for my purposes. I went over a few more, settled on CodeIgniter - I, in principle, liked this framework, unpretentious.
')
I started the first block on it, everything was fine, the projects began to arrive, the complexity grew, and at some point something broke. I climbed inside, was terrified, tried to fix it ... At that time, EllisLab began to focus on CMS, but on CodeIgniter to score, so I had to rely on my strength, well, and look for colleagues in the framework. They cooperated with Anton [Isaikin] and made the community code-igniter.ru, where they transferred the docks, answered the questions and eventually grew a good community. We made a lot of attempts to push something of our own into the core, but they were not crowned with success, nothing changed with the framework, the picture was sad. He began to explore again other options, accidentally came across the site Yii; he was at that moment wildly scary, with a blunted logo. Despite this, I read the docks - I realized that everything is logical there, laid out on the shelves, abstractions are not excessive, I deployed a test application - everything is cool.

For my next project I took Yii, it went well, then again, well, and some trifles got into it. I started writing tickets, then proposing solutions, uploading patches, then Tian [Qiang Xue] said, “Your patches have been revised for a long time, and the quality is quite high, so let's go straight to the master.” So I got into the core team. Then we launched yiiframework.ru , I announced it on the forums of our existing community, from there a lot of people crawled, so the base quickly grew.

We supported version 1.1, then planned 1.2, which never came out, but 2.0 came out, to which I had a solid hand. In 2015, Tian went to a new job, he had almost no time left for the framework, and he handed over the project to the five most active participants. Now there is no individual who decides everything, now we have an internal weak, and all important decisions are collective.



What is the core team? How is the communication? How are tasks distributed, are there any deadlines?

There are five people in the core team: Dima Naumenko from Kiev, Pasha Klimov from Donetsk, Carsten Brendt from Germany (he, like me, has long been on the team, and he knows Russian), Bougwin [Boudewijn Vahrmeijer aka dynosource] from the Netherlands. These are the main participants, they have now formed additional teams from the most active reviewers and contributors, giving them more rights so that they can work with pull-requests and even some repositories directly. There are 13 of them, and there are about twenty active contributors, and in general, people who participate in the development, for two hundred.

Speak in Slak in English. Write off 2-3 times a week, sometimes call up, meet at conferences. Active communication happens when we start arguing, discuss supernews, or are preparing for a conference, and everyone takes their tickets to the best of their ability and tries to solve them, or designs the next versions. Since all work has full time, we do not have clear deadlines, they appear only if something critical happens.

And how do open source development and full time work together?

Personally, in my previous works, Yii was actively used, so they only benefited from my participation in the development of the framework and certainly did not forbid them to engage. In general, the code and design Yii - one of the hobbies, devoting him an hour after work - in principle, normal. Since I and Yii, and PHP have known for a long time and deeply, this hobby does not take much time.

Is it worth engaging in open source?

Depends on the goal. If you want to dig and know more than can offer full time in middle position, then for some time definitely worth it. In the open source, the leaders are very savvy, they always have something to learn. Eleven thousand stars on Github do not appear just like that, all these people climbed into the code, studied, criticized, tried to fix it. Open source solutions are tested by a large number of people and projects, there is a huge educational potential.

For me, the main result was that in 5 years I managed to work with the guys much more experienced than me, it was during that period when I stopped growing and began to think that I had nothing more to learn. It is not true, there is always something to learn, the main thing is to find out from whom.

By the way, managers can also find benefits for themselves: you can look at the processes, study mistakes, learn how to deploy, communicate with the community, organize testing.



What problems need to be prepared?

If I wrote down the library and it became superpopular, on the one hand it’s good — they invite you to conferences, offer decent positions, and on the other, it starts to devour your time and yourself morally. From a certain moment, an open source can be transferred to full-time work mode, but before that it is a hobby for oneself, one should have fun and not consider it as the main goal of life. Otherwise, burnout will happen and instead of a talented developer there will be a lifeless person who does not want to do anything. We have a few people in the team that burned so badly - coolly commited, but too often and intensively, and as a result they are exhausted.

We must be prepared for the fact that a cloud of very, very loud haters will inevitably appear. We must learn to filter this case, weed out, it is not easy. One dissatisfied louder than hundreds satisfied, it is always the case. For example, recently launched several polls on Facebook on the next version, send comments. They are full of constructive, but, of course, there immediately appeared the theme "the best thing you can do is nail all nafig, so that everyone wrote on Symfony and Laravel." This is a rather strange position, considering that the Symphony on GitHub has 13 thousand stars, not much more than ours. I understand that from the point of view of the theory of Yii is not the most correct thing, we cut corners, now I would rewrite a lot, and we will do it, but straining hayterstvo, and we must be ready for it. If you can not stand criticism - better, probably, in the open source not to meddle.

Does open source help to find a great job? Tell me where you worked, already being in the core team.

I worked for Clevertech in New York, living in Voronezh. It turned out there because of Yii - they said, your development experience is interesting to us, we have our own workings, which need to be documented and put into the open source. Since I can do this best of all, I started with this, then wrote a small open wiki engine. The fact that they began to lay out their groundwork in the open source helped a lot to bring many cool developers to the company. This is useful for HR, for keeping developers, and cool for code - it is brushed in open-source, a lot of people run into it and start testing for insane cases that you can't even imagine, and the library is licked to the ideal in a short time.

After some time, Tian called stay.com in a Norwegian startup. There was a team with which I really wanted to work, so I transferred the cases to one of the main developers and moved to Stay.

Stay.com was a travel application that allowed city guides to be poured onto the phone with recommendations from all known personalities; it could work without the Internet, show where to go, what to do. Outside it stuck out a little, but inside there were complex business processes, CRM, analytics, content verification automation, in general, very interesting. The application has been licked to such an extent that so far on Facebook in the project group they are asked about his fate. Unfortunately, it was closed for business reasons.

By the way, with “Stey” I understood that the main thing in a product is, as a rule, not an algorithm, but competent business processes and knowledge within a company that are difficult for an outsider to understand because of the lack of experience in building them from scratch. We had a couple of offices in the neighboring streets that copied our service and did the same, but they didn’t understand what was happening, because they took the ready-made solution as a basis, without seeing it inside out.



Is it possible to feed off the feed? What are your successes on Patreon?

In the open source it is very difficult to get a direct material reward. Projects that succeeded, units. As a rule, the income is obtained from some paid extensions, add-ins or services. Our history is completely non-commercial, it does not bring any direct profit, only expenses - hosting, time.

Patreon was an experiment when the Stay closed. The idea to engage in a framework as full time was a long time ago. However, I did not pin any particularly high hopes on crowdfunding, but why not try. It turned out very well, the community was responsive, they donated a sum that allowed the whole year to work on the framework on an ongoing basis. However, at a certain point I began to realize that I was rusting without real projects. When new ideas for the framework come to an end, I lose my vision, I do not understand where to go, and one of the reasons why I accepted the offer from Skyeng is that you can gain new experience, learn something.

In general, when I announced at Patreon that I was going to work, the coolest sponsors (such as HumHub, CraftCMS, Luya) either reduced their payments, or left, which is logical - they want to support the framework, and not Sasha Makarov personally. But still there is a good amount for the current work of small donations, for which I am very grateful.

We want to register the fund, so that the sponsors donate money to Yii, and they are distributed among all the participants of the development and spent on servers, development, design - all that now each of us pays from his own pocket. Tyan's rights to Yii (he registered them to protect the domain name, because otherwise it would have gone to Nintendo at some point), he does not mind.

Generally, open source framework is expensive?

Yes, enough. The costs depend on the stage - for example, if only you have done something, and nobody knows about it yet, the best way to promote it is to actively go to all the conferences and talk. And it is expensive, because no one reimburses expenses, in the States and in Europe this is not accepted.



You often point out conferences among the “buns” for an open-source developer. And what is their benefit?

Well, first, I like it. Cool chat with people. At one time, I learned a lot of new things on them, at a time when it was not yet accepted to massively spread everything in GitHab. Conferences were the main source of information, especially the corridors. Well, dating there is very helpful in the work - for example, when you need to tell Yandex that something has broken, the most effective way is to pull someone from the inside. And this is still normal compared to Google.

Another profit in the offers of steep vacancies, in new contributors, participation contributes to the spread of open source, many people, who have written everything before themselves, are beginning to get involved in working together, the base for the whole industry is improving.

Why decided to work in Skyeng?

When I got the feeling that I was “rusting,” I began to look for something to do. First, I started a coffee house in Voronezh (we will open the second one soon), then the load fell again, I began to be lazy, I had to do something about it. I looked at interviews, I realized that I could evaluate algorithms in my head and write code on a piece of paper (I used to think not). There were 5-6 very good offers, but they did not arrange for some conditions. For example, the contract stated that the rights to all the code written by me at work are transferred to the employer. This means that if I accidentally pushes something in Yii, the rights will go to them, and they did not want to change this item.

In general, an offer arrives from Skyeng, and since I don’t refuse anything at once, why not. It is useful to study what it is, read the articles, and began to realize that everything is not so simple, that there is something deep behind the facade. At the interview, they told in more detail, made sure that this is exactly what I need in terms of the complexity of the tasks, and the company is actively growing, which means that I can bring what I have brought to other projects. And here they say that editing a contract is not a question at all, well, everything has become clear.

I am engaged while by support of the old backend written on Yii. I will gradually update it and translate it into symfony. I do not mind, the company should have a single standard.

What do you advise people who still decide to go to the open source?

The reality is that open-source projects are the same as start-ups, a very small percentage of shoots . But in the open source you can immediately see why. You put the code, and that it was not in vain, it should be useful to someone. And for this, this someone must, in the first place, find out that you have prepared something for him.

In the open source, everyone makes the same mistakes. We made the same mistake for six years - we didn't care about the readme . Readme is the first thing that a person who has come to see you, and there often is not enough information or there is no information at all. As a result, you find a kind of interesting project, there is code inside, but nobody knows what it is. We at Yii, by the way, made a normal logo a year and a half ago - as they added it to the readme, popularity has greatly increased.

Another common mistake is when people saw the code, but they don't tell anyone about it . There is an excellent library on Github, it has been in the profile for years, but nobody knows about it. Yes, if this is something super-unique, then it may be found, but if this is just a good product, it is unlikely. If you spend a couple of days on PR, write on Reddit, Habra, somewhere else, then people will come and the project will heal with its life.

If the task is to learn something, then you need to understand that the best school is in existing projects , not in your own. For a start, it makes sense to go there and not go into complex things. If this is a framework, it is probably already well licked, it is better to start, for example, with the translation of documentation into your language, correct errors in the comments, it will help to study the project from the inside, and then you can start to do something serious. In general, translating documentation is the best way to enter .

Finally, I repeat: if the project has become popular, you must be ready for the appearance of people who will demand something and swear. This is an inevitable consequence of popularity - you just need to understand and forgive.

Want to ask your question to Alexander? Take advantage of the comments, we will try to respond promptly. Well, if you want to work with him in one cool team of Skyeng - we are always looking for talents !

Source: https://habr.com/ru/post/343490/


All Articles