“Any self-respecting IT person is engaged in technology and in his spare time” - 10 questions for a programmer, issue 6
The final edition of the "10 questions" from Berlin. This time we are talking with Artem Nikitin, who lives in Berlin, but still flies regularly to Moscow. Prior to moving, I was testing backends in Qiwi, and in August 2015, I agreed to an invitation from HERE Technologies. The first conversation with a new employer took place during a trip to Hong Kong at the Mira Hotel. In the very same place where Snowden gave the famous Guardian interview that changed his life. Coincidence? Artyom is not sure and wants to check again.
The new position in Here is called System Engineer, which in Russia, depending on the team, may be called DevOps, a sysadmin or SRE . In Here, Artem is in charge of CI and everything around it.
1. Tell me about the feature that you have implemented and that you are proud of.
Last year, I started to cut the go-implementation of one of the libraries, which we recently supplemented - Flatdata . To date - this is probably my biggest achievement as an engineer. This library is used in one of our key services, but I did the implementation in my free time, just for fun.
2. And now - about the most fierce fakap.
The most stupid case was a few weeks ago. On CI on Jenkins, you had to set up several new jobs. There were several steps in the job: first, files were downloaded, some directories were created, then a git-clone was created via a command in the pipeline. But at the next stages there was a problem - there were no files that were created during the setup stage! I began to dig, find out whether the necessary rights are established and stuff like that. Spent one or two days on it. But it turned out that the jenkin's plug-in for the gita during the creation of the clone by default deletes the entire contents of the directory where you make the clone. Accordingly, the entire setup that I did in the first stage was deleted. And the solution to the problem was simply to swap the steps.
3. Describe your working space: from the chair and monitor to programming environments and favorite utilities.
Now in Here the concept of Smart Office is being introduced. There is no fixed table for the person - come and take any. There are several nuances in this approach. Some people by inertia occupy the same place. And there are guys who, for health reasons, for example, do not fit any table and chair. But in general, the system seems to work.
Personally, I am very ascetic in terms of the workplace. I only have a laptop made of iron, and I don’t like to use an additional monitor. He distracts me rather than helps. Therefore, I just have a MacBook Pro 15 "- in the top configuration in 2015, when it was bought. And the rest is a table, a chair ...
Our team creates solutions for mobile devices, so we have Xcode for iOS and Android Studio for Android. GoLand - for Goshechka. In general, the standard utility.
4. How do you choose your job? Stack, product, living conditions, money?
For me, the main criterion is the challenge, complex technological tasks. And they can be quite ordinary, but each time in a new place their decision will be different, with their own nuances. If you take the construction of a full-fledged CI / CD pipeline, then this will be essentially a unique task, because the product is different and the team is different. Kelsey Hightower has a wonderful phrase on this topic: “CI is a description of corporate culture with bash scripts.”
Money, of course, is important - we live in the material world. But they are not in the first place. If a startup offered me a very interesting task, but they paid less money for the implementation than I used to, I would consider the proposal. But so far no such proposals have been received. But there were a lot of strange offers, when there is little money at all and it is not clear what it is and why.
5. What would you like to fix in the technologies and languages you use?
In Go, there is a well-known problem with dependency management. She is just starting to decide now. Google has no such problem, so they never solved it. And only when the community buzzed all their ears, they began to think. It seems to be slowly moving, and there is hope that in time Go will become more mature and approach Java in this respect, for example.
In principle, IDEs that make JetBrains one of the best. But it happens that in someone else's products you meet fishes that you really like. Therefore, ideally, I would like to have some such ideal Uber-IDE. But this is from the category of fiction.
6. Where better to adopt someone else's experience - in high school, on konfy, on Habré? Somewhere else?
Looking for what purposes you need experience. Learning from the book features of the latest React.js is not worth it. There, everything is becoming obsolete at such a rate that books will not help. But the basic things are quite. Tannenbaum's “computer networks”, something about the device of operating systems, books about basic concepts in programming are all relevant now.
I have a technical degree, but I would not say that it helped me a lot. It may not have been the best high school, or I didn’t study very well, but in my case I didn’t see the special value of education. Of course, this time is not thrown to the wind - at the university you are taught how to work with information and look for solutions - but I don’t feel much use for these five years. Perhaps this is a feature of education in Russia - while studying it is not clear how you can apply the gained knowledge in the real world. I only found out later that we were actually taught cool things that are used in game theory. But the way they told us, completely discouraged all desire.
I like courses on Coursera, they are cool and much more useful in some aspects than the classical higher education that I received.
Conferences are awesome. I even performed on three this year: Selenium Camp in Kiev, Heisenbug in St. Petersburg and DevDays in Vilnius. They were all in the first half of the year, and I was so tired that I took a short break. But on the other hand, I got experience in speeches, talked with people - both with speakers and listeners. Chatting on the sidelines is probably the most valuable part of any conference.
7. If you had unlimited resources (time, money, power, people), what project would you do?
Yes, I would still stay in IT and continue to do it, because I'm interested. I do not have any global projects, such as "to make happy all of humanity."
If you look beyond IT, then the real thing is to buy a flat or house in Hong Kong and spend more time there than 1-2 times a year, as it turns out now.
Recently, the idea has been hovering about bringing Din Tai Fung and Tim Ho Wan restaurants to Berlin. The key point is to convey the taste as close as possible to the original. In Berlin, all dim sum are at best so-so, in Moscow, by the way, too. “Chinese News”, which is essentially a copy of Din Tai Fung, is very average in terms of dim sum. Cucumbers have a fire - almost like in Hong Kong Din Tai Fung, but not so sharp. And everything else is average. In fact, in terms of people, I even know who could help me with this. I have a friend, her name is Phoebe, she is from Taiwan - the motherland of Din Tai Fung - and she is also a cook, she studied with famous French chefs.
8. How do you relax? What are you doing besides work?
Any self-respecting IT specialist is engaged in technology and in his free time too - someone is more, someone is less, but, it seems to me, everything. But if you go beyond IT, then I go to workouts for Krav Maga and kickboxing - no belts, just for fun. Martial arts for me compare favorably with just training in the gym, which do not attract me at all.
The rest is standard: I like to watch TV shows, read a book, play PlayStation. Although it all takes me less time now than before. However, I do not regret the time spent. From the latter, I can advise an Israeli series on how the security services are fighting terrorists - “Fauda” - goes to Netflix.
9. Tell about 3 favorite books - educational, popular science and art..
From textbooks it makes sense to read the basic books. The same Tannenbaum - about the device operating systems and networks. Although with Tannenbaum need willpower. I usually fall asleep when I read it.
And if you read any books on programming, it makes sense to read the chapter, switch to the IDE and there try to implement what was said in the chapter.
Outside of IT, I have not read books for a long time, to be honest. From what was given at school, at that age you perceived only superficial things, and what was actually laid by the author, passed by you, because there is still no life experience to understand this.
From childhood, I remember "The Count of Monte Cristo", "The Godfather" (and the book is much better than the film). And now in Kindle I have a cool book “Project Phoenix” - a book about DevOps, which describes the existing problems in IT. I got so carried away that I read it overnight.
I would also mention the writer Ayn Rand - our former compatriot, who moved to the United States. Her books seem to me very ambiguous, but it’s worth reading them. I would recommend “Anthem” - it seems to be one of her first books and very short, unlike later ones. "Atlas Shrugged", it is the size of "War and Peace"! Reading this is almost a feat.
10. If a consciousness wakes up right in front of you in AI, what will you tell him?
All that is now called "artificial intelligence" is software, sharpened to solve specific problems. True intelligence is not a thing of the near future. But if it were really possible to talk with the AI, I think I would be joking. Emotions are an area where the AI will lag very far behind for a long time. After all, emotions are not a rational thing. I think it will be extremely difficult to implement.
Question from previous guest :
Suggest a pumping strategy after the first five years of work as a programmer. What's next?I have more than five years of experience and it seems to me that there are no restrictions from the “2, 5 or 10 years” series. If you want to be an engineer and remain relevant, then training should be permanent. We need to try new languages, tools, frameworks, approaches. Otherwise, you will be left behind. But this is not necessarily bad - the same COBOL is still relevant, and people who understand it, earn a lot of money.
Bonus: ask a question to another developer
Why did you decide to go to IT?