Interview with Alexander Makarov (Yii) about Opensource, conferences and Yii /Habr
Recently I interviewed the developer of Yii framework Alexander Makarov ( SamDark ) On various topics - IT conferences in Russia, remote work and work abroad and, of course, about the Yii Framework.
spoke at various IT-conferences in Russia and Europe, and managed to meet personally many interesting people.
This year I decided to try a new interview format for myself and introduce you to those who are developing the IT community in different parts of our world. And so the MoreView project was born. I will post all issues on YouTube channel , my habr and in podcasts.
I recorded one of the first issues with Sasha Makarov, the same developer from the Yii Core Team.
Sasha has accumulated rich and varied experience - teamwork, open-source, work abroad, and her own coffee houses. We talked about all this in the format of an online broadcast on YouTube - YouTube , and I publish text decoding here, on Habré. The conversation turned out to be voluminous, so for convenience I broke it into blocks.
The dialogue is structured this way: I communicate with the guest online and the conversation is streamed on YouTube, where anyone asks questions. In the decryption, there are also questions from YouTube and they are marked in this way -
Before moving on to the interview itself, I invite you to the next Interview with Alexander Afenov (Head of Development at Lamoda). Broadcast will be here .
Tell me a little about yourself: where are you from and what are you doing at the moment?
My name is Sasha Makarov, I'm from Voronezh. The main reason why they may know me is:
Yii Framework. I have been doing it for about 10 years.
Speeches at various conferences. I used to talk only about Yii, now I’m talking about other topics: programming, architecture, and so on.
About Yii Framework
How did you come to become a Yii developer?
It started a long time ago, at the second job - Siemens Business Services. We were engaged in supporting external customers. Tasks were given with a margin and there was enough time to do something of their own.
For a long time I was developing in Java. I wanted to share knowledge and there was a need to start a blog, but it was problematic to deploy it in Java: expensive servers, the need to configure everything myself, a not quite simple deployment process. At the university, I had a little experience in PHP, so I started with it. First I tried to write on it without frameworks, and then switched to CodeIgniter.
It became interesting to see how it works from the inside out and promote its edits, but this did not happen right away, because the framework was no longer a priority for the company developing it.
So I started looking for other frameworks and accidentally stumbled upon the Yii page. The site itself was terrible, and the documentation was surprisingly good. And most importantly, everything that was written worked. After I made the site yiiframework.ru. Gradually, I began to offer some ideas and ideas from codeigniter, Java and my experience, and the main creator of the framework, Qiang Xue, offered me a place in the team.
How did you come to the fact that you began to develop your account on Habré?
I did not purposefully develop it. I looked at what Russian-language sites are there to publish announcements on Yii in Russian, which will be a pleasure to read. I post publications without any specific timing. If you get something interesting, long and cool, which I would like to share not only with the readers of the blog, then I write about it on the hub Now there are still posts with transcripts of reports from conferences of the ONTIKO team, and since I am the head of the program committee of PHP Russia, transcripts are published on my behalf.
When will the Yii 3 come out?
It’s impossible to give a clear release date. We work in the world of open source and despite the fact that I devote a lot of time to it, I alone can’t do it all quickly. Active contributors have their own affairs, their own work. Sometimes some participants can get out of the workflow for an indefinite period, which hits it and affects the timing.
Now Yii 3 is already working. The code that is now is enough to do production projects. But this code is “seething” - we regularly refine it.
Yii3 is broken into a large number of packets (about 100). After some time, we will release these packages separately.
Are you the one pulling the whole project?
Not at all - I control this process. The telegram is now the most active community @ yii3ru. There are about five super active people who make almost 90% of everything that is sawed in the third version of the framework. Some of them have a production project on Yii3 - they drive a car and assemble it on the go. Of course it's cool that they will get exactly what they need, but they, of course, take risks.
How can I support the project?
We have two ways of financial support - OpenCollective and Github. But there are problems with Github. Despite the fact that funds should come from it on OpenCollective, on the spot they still hang on the github account and the money does not go anywhere. So it's better to support us through OpenCollective.
Will it be possible to write asynchronous code in Yii3?
There is no directly completely asynchronous code (as in ReactPHP) - most likely this will not happen. But it will be possible to run the application in server mode - it will be possible to initialize the application and it will process PSR requests. You can run the project through Roadrunner or Swoole.
Are there any fears of staying on Github due to sanctions? Are there any reserve plans?
Yes, Github can make us all. But in our github there is nothing particularly closed. The project is international and cannot be blocked for everyone at once - they can block me. If necessary, we can move to any service - the same GitLab, which we will host on our own. All functionality will be quietly migrated through the API. Worst case - we will not be engaged in development for a week and will be engaged in moving to a new site.
Will there be a Yii 3 Monolog?
Yes and no. In Yii ? you can use any PSR Logger. We have our own logger that suits us. We decided that we shouldn’t throw out what works great. If he were not there, then we would have taken Monolog. But, since the Yii 3 component framework, you can connect any PSR components. The same Request, Response, Cache, etc. It will be possible to use any third-party implementations. For example, for Request and Response, we did not do our implementation.
Do you know cool projects on Yii that work on prod and not under NDA?
For example, ITAR-TASS runs on Yii2. Shop dns-shop.ru. There is a site yiipowered.com - there are many projects.
What do you consider the main pain of Yii 2? What is the saddest part of it?
The framework turned out to be good, but good for two categories of projects and teams:
not very complex projects where there are no requirements for the experience of those who make them
complex projects that are done by very experienced people
It is not very suitable for people without experience who are starting to do a complex project. Yii 2 will not teach you to do well. Yii 3 will try.
Is ActiveRecord the sad part?
It is both a sad and not a sad part. In our documentation, to simplify, the logic is described inside the controller and models, and many take it as a standard and do the same.
If you write documentation with complications - repositories, etc., then the framework begins to seem complicated. And if you write as simple as that, the flip side arises - users think that this is a good example.
Will there be any binding for those people who have a hard time in architecture? Or let them stay on Yii 2?
We plan to do extensive documentation that allows you to dive into the subject area and navigate in DI, architecture and more.
About the conference
How did you get on the conference program committees?
I don’t remember exactly when it happened. I started by speaking at ONTIKO conferences - the first RITs (even before Highload). Later they called on Highload Junior to talk about horizontal and vertical scaling. Around that time, they called in the PC team. After several RITs and Khayloads, Oleg Bunin proposed organizing a PHP Russia conference.
How did it happen that before PHP Russia there were no PHP conferences?
There used to be conferences about PHP. Devconf all grew out of PHP - it used to be a PHPConf conference. And a little later, the organizers dragged other languages and the PHP language in the conference a little blurred. PHP has been dying for about 20 years and will never die - I think it will continue this way. PHP Russia and I hit the peak - PHP 7 just came out and the attention to the language grew - a new fresh breath of air and opportunities.
YiiConf 2017 was part of Devconf, right?
YiiConf was two - in Kiev and Moscow. In Kiev, they managed completely on their own, in Moscow they did together with the Devconf team. They took on technical support, food, and more. The search for speakers and some other organizational issues were upon us. It turned out well and the reviews were also good.
How do people get into program committees? And how is the world inside?
They call there :) Usually they are experts or former /current conference speakers - people whom Oleg Bunin and other conference speakers know and trust. The PC itself is usually arranged in approximately the following way - each member of the PC does what the PC leader asks him to do. Usually this is a selection of incoming reports and finalization of reports.
If we have doubts about a potential speaker, then we put to the speaker a specific member of the PC who is already dealing with this report.
Also, if the professional sphere of the report coincides with the sphere of someone from the PC, then we trust this report to him. If, for example, we have a specialist in GraphQL, then reports about GraphQL go to him and he selects the most suitable one. Each member of the PC has its own sphere. But if in the incoming report the topic is not suitable for any of the PC members, then there are 3 options:
I take the report.
I assign a report to someone from the PC - the professionalism of the guys allows you to quickly enter a new topic.
ONTIKO has a coach (Roman Poborchiy), who is engaged in finalizing the structure of the report and understanding the communication of information.
We also send reports to Roman that are completely satisfied with the content, but it is worth finalizing the structure or presentation.
Sasha opens PHP Russia 2019
Are there any slots left for fall PHP Russia?
Most likely we will reopen the presentation of reports in PHP Russia. I think that not all speakers who were submitted for May will be able to speak in the fall and we will get more reports, which will make our conference even cooler :) If you have ideas and ideas for the report, be sure to submit when we again open the application submission.
Are there any restrictions on the complexity of the report? Do you prefer hardcore reports or do you accept simple reports too?
There is a list of topics that we want to cover both in the English and Russian versions of the site. We do not count on beginners at all, since it is not easy to fit in one conference both hardcore reports and reports for beginners. Therefore, the level of difficulty begins with an average and ends with a fierce hardcore.
Presentations at the middle level of listeners go very steeply when the speaker has a very good presentation. And if the author submits a report of some super-unique thing, the presentation is less important than the content, although we will do our best to improve it.
What will happen in May at PHP Russia?
We plan to make an experimental piece - a completely free conference and completely in English. We have English-speaking speakers who cannot come in May and September, but are ready to tell their reports remotely. This will not be a complete replacement for PHP Russia. Thus, we will not damage the program of the autumn conference in any way, because we will not pull out a significant number of speakers from there.
Will there be a translation?
We will do transcripts of reports - they will be translated and posted on Habr. Perhaps sooner or later, we will decode all the reports.
Does ONTIKO and PHP Russia help speakers online or offline?
In most cases, everything happens online, because there are speakers or PC members who do not live in Moscow. But offline is also present. The day before the conference runs are held right at the conference venue. It will not be possible to change something globally anymore, but you can correct some details on the content and presentation :) If you are in the same city as a member of the PC, then no one is against meeting in person.
About work, remote and not only
In what format does your work usually go?
I live in Voronezh and work mainly from home.
Now I mostly deal with open source. There were times when I went to the office for a couple of weeks to work closely with the business. These formats have their pros and cons. It's good and great to see a family more often, but, on the other hand, these are also disadvantages - children with much more important problems come running :)
Jobs at Skyeng
How was the “couple of weeks” moving process when you worked at Skyeng? As far as I know, there are many remote developers. Are they all brought to Moscow?
Not really. Almost all business representatives and operators work in the office, there are not many developers there.
It is enough to build all communications with these areas of overhead to bring me to Moscow. As a team leader, I interacted a lot with business, support, some teachers and other people, with whom it was noticeably more effective to discuss everything in person.
Did you have the task of communicating more with business and management than with developers? Have you been at the junction of team leadership and product?
In Skyeng, this is called team lead - this is a very wide post with high responsibility. Not all companies have the same team responsibilities.
At TeamLeadConf 2020
How efficiently did you manage to remotely manage Skyeng developers?
Remote control took place in a fairly standard way - except that all communications go through slack, zoom, hangouts.
Every chance that falls in order to intersect with someone from the team must be used to the maximum. If I know, for example, that one of the developers flies to relatives from Novosibirsk for 3-4 days, you need to take tickets to Moscow and go to the pub to talk in person. Talking personally with each team member once is important.
And I also had an unsuccessful experiment - at first I thought that it takes a lot of time for us to stand-ups, phone calls and other communications, so I replaced all this with a slack bot that asked the same questions and threw me the answers. Everything went ok, but over time I began to notice that the guys began to fall out of context and ceased to feel like part of the team. One got the feeling that they worked alone, and communicated only with the bot.
Why left Skyeng?
This was my first experience of team leadership - I used to have experience working only as technical expert. It was a lot of good - I could set the direction of work, try out new technologies, etc. But it was hard enough to work. Especially the last six months, the load was wild. I realized that if I did not take a long pause and didn’t sit for a while and write code, I would simply burn it out.
When you worked at Skyeng did you speak at various conferences? Was it easy to combine?
Remote and conferences are easy enough to combine. In employment, I agreed that some days I would be very poorly accessible. Of course, I always warned about such days in advance. If you pre-negotiate these points with the leadership, then there will be no problems.
Did you hire developers yourself?
Initially, the team I inherited, but when there were not enough people, I, of course, hired myself. The company's management is very cool building interaction with team leaders. Sergei Safonov said that he wants to see each of the teams as a black box into which you drop tasks, and he spits out the solution. What exactly happens in the black box is not so important. Timlid is the face of the team that makes this “black box” good. Of course, in reality this does not always work, and the service station has to get in there and see what works wrong. Timlid also dismisses, because it is he who is responsible for ensuring that the team is effective.
Have there been situations when they fired the wrong person and left those who should be fired?
I fired two people in my team. One quickly enough and made this decision on his own. With the second, I delayed for six months and fired him only after talking with the service station. Sometimes this person worked super-quality and fast, and sometimes he did not work at all. At some point, it became clear that it was no longer possible to interact with him.
How do you feel about firing people?
It used to be hard, now it’s not. First of all, I’m not firing anyone now - you won’t especially fire from an open source. Secondly, it is a great harm for the company not to fire a team member who is not suitable and this is bad for the person himself - he feels pressure, complaints, and so on. It’s better to part and the sooner the better.
Did you have any KPI for developers?
There was no KPI, but a set of auxiliary metrics. They are not taken out anywhere (for example, in the assessment of salaries and so on). There are both objective metrics that are formed on the basis of data in Jira, and subjective ones, which I translated into objective ones after communication and personal sensations, which I noted for myself.
Was the result measured through LOC (Lines Of Code)?
There is no such norm LOC - there is a norm of completed tasks for the sprint. At Skyeng, we asked if the sprint developer could manage to do this amount of the task. If the answer is yes, then we already assigned the task to the developer. The norm is to complete tasks that have been assigned to the developer.
Moreover, some tasks are not solved by code. If the task “to make a neural network so that it determines the mood of a person” on the basis of a recording of a conversation arrives, you think, “Why? Maybe on the operator’s interface side we’ll just make a mood button? ” The second solution will be noticeably cheaper for business and will solve the problem and there is no need to code a lot. In a good way, Product should take and, from a business point of view, evaluate everything - what are the alternatives and is this task really necessary? Sometimes tasks are not worked out in detail, set in a momentary impulse and go further from the product to the same team lead. In this case, the leader or developer already has the task of conveying that the task is not worth doing and that this will be the ideal solution to the problem - not to do it.
Have you worked in Norway for a while? Was it a complete relocation?
It happened in the city of Oslo, but it was not quite a relocation - these were long business trips. If in Skyeng there were trips for a week, then in stay.com business trips were for 1-1.5 months. The rest of the time I worked for them remotely from home.
The team was not very large and the team included developers of the Yii framework (Qiang Xue, Wei Zhuo). Everything was quite simple compared to working in large companies.
Is there a difference in working for a Russian and a foreign company?
A completely different way of doing things. The Russian market is tougher, so the requirements for developers and in general for all who receive a salary are strict. Most likely the fact is that the salaries of the same PHP developers are not very different from salaries abroad (after taxes, etc.), but at the same time, in business, for example, the USA is a “drop in the ocean”, and in Russia, IT costs are far from a drop in the ocean. And it turns out that the load and responsibility are much greater and the relationship between the developer and the leader is more nervous.
Work in Norway was calmer. They basically have a different approach to development and work - they correctly noticed that "a person who is tired and driven out works worse." Yes, it can work, but the result will be noticeably less.
First, they set up a normal work schedule, and then they even kick you out of work - “you’re already tired, you don’t think well, come with us to the bar :)”.
Were you there as a developer or as a team leader? Do you think this approach is effective in terms of development?
I was there as a developer and I think it was great. We had time to think - when I am rested and not driven, I think much better. And, as a result, you manage to do the same tasks in a shorter time frame! You don’t have to go far for examples - Anton Titov’s approach to Spiral Scout is approximately the same and everything seems to work well.
Why are you always wearing a hat?)
The hat sets me up for communication and public speaking. Of course, I don’t wear a hat at home :) Over time, this has become an element of style. The first hat was bought quite by accident in one of the warm countries, because it was hot. I took a super cheap hat and that’s it. Later, at one of the conferences, I came in with a hat and realized that everything around was without hats, but in a hat :)
About the coffee shops
Many IT people dream of starting their own offline business. How did you come to open your coffee houses?
I was always interested in doing this. I wanted to do something that I could touch for a change. My brother also has Computer Science education - he worked on development for some time, then got into Bitrix and burned out. Then he learned to play billiards professionally and began to train students.
In one of the billiard rooms there was a coffee machine with a barista. Barista left, but the coffee machine remained - he figured out this matter, learned how to brew delicious coffee and decided to start his own institution.
Have you ever used your developer's skill to automate business processes in coffee houses?
There are small systems that build financial reports, draw charts, and so on. I would not say that everything is very automated there. A very healthy share of perfectionism migrated there from IT - there is a certain level below which our background does not allow to fall. For example, the quality of coffee. Perhaps this is the main thing that we took from IT.
And what is happening in the epidemic? Any chance to stay afloat?
The regional government has banned all but food stores. It’s allowed to take away - when it turns out we do it too, but, of course, this is not at all the case. We are optimistic and believe that of course there is a chance to survive.
Are you coding anything besides working on the Yii Framework now?
I have a couple of pet projects that I sometimes do. Last year, there were small orders for the development of libraries, implementation of algorithms, etc. The Yii Foundation covers part of what I need from life, but not all - that's why I sometimes take development orders.
Until recently, there were enough donations for Yii, and until the current situation with the virus, my brother and wife had our own coffee houses in Voronezh.
You say you have Pet projects. Any cool ideas of projects come to mind. Is it worth it to do it or is it worth leaving the idea, in the hope that someone else will do it?
There are different ideas:
Wow, cool idea. There is no one to sell it to, but the idea itself is cool. The implementation of such things is often quite simple. If I’m very hooked, then I will do it in a short time and I will be satisfied.
If the idea is difficult to implement, then I still concentrate on developing Yii - I put the idea into a notebook, which has already become quite thick.
What is your opinion on swoole?
This is definitely a cool thing. It is not very common with us - we are established to work through FPM. Useful tool - allows you to run the server in PHP. The developers had some conflicts and the Swoole community planned to run on RoadRunner. RoadRunner allows you to run everything quickly and easily with a minimal amount of activity.
What is rmcreative?
Once upon a time, we created our own clan, which was cut into online games (Quake and others). And we created different things - fashion, art, and so on. Our team was called - rmcreative. Over time, everyone fell off the project, but the domain remained with me. As a result, it got accustomed :) From the time of Quake ? part of my nickname originates: "sam", and "dark" stuck later, also from games.
Do you think you are a creative person or a pure techie?
The theme of creativity is close enough to me - once upon a time I had a graphic tablet on which I painted and laid it out on deviant art, and now I'm trying to sculpt something on the guitar. I support the initiatives of children who are engaged in something creative and public - for example, art on the facades of houses.
This ended our interview. Let me remind you that you can watch the broadcast video here - http://youtu.be/vDdrMaxeH1M , the audio recording will be posted on my blog .
It may be interesting
find the best coffee maker
best websites for coffee lovers