“I would open a special IT zone in the south of Russia” - 10 questions to programmer # 11. New season


    Last summer, we launched the “10 Questions for the Programmer” column, and for 10 issues it was pretty fun. Good people who do not always have access to a huge audience could speak out. Someone found understanding, someone came across criticism.

    Before the 11th release, we took a short pause, which took too long. We are correcting, we are returning. Now you again have the opportunity to tell about yourself interestingly. The format is almost the same, we just updated the questions a little, and we will do this in each next issue.

    If you have something to tell about yourself or a powerful question has matured over which the whole community will break your head - write to me in PM or baragol .

    And in the first issue Dmitry Yavorsky ( ekabandit) from Yekaterinburg. He tells how he saved Russian Railways from the WannaCry virus, rejected the offers of Sberbank and, as it were, legislatively influenced the industry.

    1. Tell a working story that you will proudly retell to your grandchildren.

    For the rest of my life I will remember how for the first time I stayed to perform the duties of a chief in Russian Railways - to manage 50 employees of different ages - just at the time of the Wannacry virus attack.

    It was Friday night. I was already at home, I just opened beer, when spam began in the media about a worldwide virus attack. Then the information passed into corporate dialogs. I quickly finished the bottle and went to work. We disconnected from the Internet, no infections were recorded. After spending two more hours at work, I decided that nothing serious would happen and went to bed again.

    At seven in the morning, the head of the security department already gave me a huge list of servers where you need to update Windows. After another 3-4 hours, Microsoft released an update on windows 2003, which was not supported for several years. The list of servers that need to be updated has increased significantly, and I had to call all the free people. By that time, we abandoned attempts to revive WSUS, which for some reason did not work, and began to update the server manually.

    We had a fun weekend all the weekend, quickly deployed from scratch 2-3 servers that went to the blue screen after installing the updates, watched hockey on the projector (by the way, Russia beat Slovaks 6-0 this weekend), deleted dozens of forgotten servers.

    As a result - a great event for team building, and more than one server infection in the Yekaterinburg data center.
    I knew from school that I would work in IT — I wanted to follow in the footsteps of my parents. Despite the fact that I studied in the literary class, we had a strong teacher in computer science. Participation in various olympiads made it possible to periodically skip classes. There we were taught to write in Pascal. I remember my father told me about the GOTO operator, for the use of which I regularly received in the lessons.

    The teacher at that time had connections in Yandex and offered to go on an internship or study. But with my youthful maximalism, I told her: “I don’t like Yandex, I use Google.” Go back and give yourself a slap.

    After school, I entered the railway university for the purpose (with subsequent development on the Russian Railways) in the specialty "Information Systems and Technologies." I thought that I would continue to develop in programming, but for four years (and two years after graduate school) there was only a semester of assembly language programming on a leaflet and a Delphi semester.

    From the 3rd year I started working at Russian Railways, where at first I was an enekeyschik. A lot of working time was spent preparing term papers and playing CS or Warcraft. After I worked for some time, they began to trust me more, and then I became acquainted with the big world of administration. Most of all I was hooked by IBM WebSphere, later I even joined the expert group in Russian Railways for this product.

    2. June's case, for which it is still a shame

    I remember that at the beginning of an administrator’s career, I was deploying a server for some of my needs and decided that it needs to update the Apache Tomcat configuration from a productive server.

    Having connected to both servers, I did the exact opposite - I updated Tomcat on a productive server. After a couple of minutes, when the incident came, I switched to the reserve, and on the productive server I set everything up again. I managed to do everything in about ten minutes, accusing the monitoring system of a false positive.

    My fraud was revealed six months later, when users were transferred to this server, and nothing worked for them, because I forgot to correct the configs.

    As a developer, there were no such cases. Although it was rumored that the monitoring server I wrote periodically put one of the important systems of Russian Railways due to the large number of requests, but I do not believe in it.

    3. The most painful of your current problems, which has not yet been resolved

    Now, it’s a big pain for me to understand Rx.js with its Observable and pipe. For me, this is some kind of legacy of Angular. At conferences and tutorials they say that in order to understand Rx.js you need to change your mindset, to understand some hidden truths. But while I do copy-paste from other parts of the code and use redux-saga in home projects.
    Now I have a trial going on with Russian Railways. I studied on target and went to courses, and this provides for payment, if you do not work out a certain number of years after study. Russian Railways did not provide me with the installment plan, which is due to me according to their regulatory documents. It is a pity that some individual leaders do not know how to part well with employees. This is the opinion about the whole company, although during the work I managed to get to know people from different cities and different professions, and the people there are really cool. In general, Russian Railways has a very developed youth policy and individual units invest a lot of energy in the development of soft skills for employees.

    4. By what principle do you choose a job

    When choosing a job, I consider only options on my stack. Now it’s React, Redux and in the near future I don’t plan to get down from them.

    The second important factor is the team. I prefer to work with colleagues above me in skill who have a lot to learn. Recently, I began to pay attention to the size and profile of the company. If it is large, and IT is the main profile, you do not have to be a system administrator as a programmer.

    Well, I think it's worth mentioning - although this has already become the standard for programmers - the floating beginning of the working day, the ability to work from home or take time off at any time. The rest is a matter of money.

    5. Why has good programmers become so hard to find in recent years?

    (Question from Ivan Shmakov ishmakov from Voximplant)

    I see several reasons:

    • Now the concept of good programmers is shifted towards media.
    • Existing education does not give you the opportunity to get even a junior position. Moreover, the knowledge gap is increasing every year due to the obsolescence of the curriculum and the rapid development of the field.
    • Many people become programmers because of the relatively high salaries and just the big hype of the industry.
    • Again, due to the lack of programmers, now even in the top Russian companies HR use active hunting. And if the specialist is really good, then in addition to yours, he probably already has 2-3 offers, and he may not even be in search of work.

    6. Imagine that the graduation of Junior, Middle, Senior does not exist. What scale to introduce to designate the competencies of developers? Where do you put yourself in it?

    (Question from Lisa Schwez Schvepsss of Dodo Pizza)

    Does it exist? There is no generally accepted list of skills for each grade. Like it or not, it all comes down to renaming this gradation. Well, for example, if you look at it from the perspective of a manager, then the levels will be as follows:

    1. It will not solve a big problem on its own.
    2. It will solve the problem on its own, but the quality of the code and speed leaves much to be desired.
    3. It will solve the problem well and quickly with acceptable code quality.
    4. Among other things, he will be able to discuss the feature with the customer (pumped soft skills + understanding of the business process).

    Assessing yourself does not look quite objective, but still put yourself on the third level.
    My most memorable interview was at Sberbank on the Middle Frontend of the developer (namely, Sberbank, not Sbertech). When I was invited to an interview, I already had an offer from another company, but I decided to go anyway - probably more for experience.

    Everything went on in several stages there. At first I answered questions about JS, after three days I talked with the head of the unit. We talked with him about my pictures in VK from Sheregesh and which ski resort it is better to go to, about my experience in participating in projects as a leader, diplomas, certificates.

    A couple of days later they sent me an offer that was lower than the others. I refused. Then another meeting with the leader took place, and I was aligned with the offer for the average amount for the year, taking into account quarterly and annual premiums. In the last telephone conversation, I was invited to talk with the employees of the Sberbank, who left the company from which I accepted the offer. They should have described to me why it is not worth going there. I understand that there are not enough specialists in the market, but this is a very back door.

    After this interview, I concluded that large companies are more likely to look at diplomas, knowledge and certificates than at real skill.

    7. What features should be in an ideal programming language / framework / other tool and what should not be there?

    The ideal “feature” for the language is good documentation from the creators. Take Javascript as an example. There is a very detailed ECMAScript specification, it is certainly suitable to understand the anomalous behavior of individual parts of the code / functions, but I think it’s not worth learning a language from it.

    Every language is good as long as it solves your problems. With the advent of the ideal language, development will stop and a person (possibly a company) will appear who will manage the industry. And for further development, important competition.

    8. If you have the opportunity to legislatively influence the industry - what will you do?

    I will introduce a tax on the creation of front-end frameworks. Joke.

    In Russia, for starters, I would put the code of state IP in opensource. I think the community would solve a lot of accessibility issues and bugs in government systems that we have to use.

    I would open, somewhere in the south of Russia, a special zone for the development of IT companies with reduced taxation. It could have been something like Silicon Valley. I think this is a good move in terms of the openness of the Russian community to the world, the retention of sensible specialists in our country, and once such a trend has lined up, it will be carried out import substitution.

    9. If you had unlimited resources (time, money, power, people), what would be your personal project?

    I would be developing a smart city. I would start with Yekaterinburg, with the problems that I see in everyday life myself. For example, roads. Now I get by car to work 20 minutes, back 60 minutes, or even more. I would implement artificial intelligence, which, depending on traffic and pedestrians, regulates the traffic lights throughout the city.

    10. What do you say to an AI that has become smarter than you?

    I would force myself to teach. Or invited him to design the life of an experimental city under the control of AI and tell what it would lead to.

    Also popular now: