📜 ⬆️ ⬇️

Do I need a support engineer to code it myself? (and other interesting questions and answers)

This is an unusual interview - it is given by a person who is always behind the scenes, but his answers in the mail and StackOverflow saved years of time to thousands of people. Spoiler: there will be not only about support, but also about personal projects, and about working from home, and about atypical requests for support.

Meet - Sergey Baranov, a technical support engineer at JetBrains. Interviewer - anastasiak2512 .

Hello! You may have heard that Apple has such a top designer, Jony Ive. He is also sometimes called the “white room man”. Videos with him are shown at every Apple (WWDC) conference, and they are shot in an empty white room. Therefore, there is such a joke about this person that Jony Ive is a computer program, not a living person. At JetBrains, a similar legend goes about you that you are not a living person, but an advanced artificial intelligence, a computer program from the future. This is probably due to the fact that you work from home, colleagues in the office do not see you, and you answer 24/7 in fact. Share a secret, but what really?

image
')
There is no secret in general. Indeed, I work from home, remotely, in the office almost never. And probably, many colleagues never saw me. Is that very rare, at some corporate events, parties. But there are those who saw me when I was still working in the office, but there are hardly many of them. The last 12 years I have been working remotely.

As for the response time, I am very concentrated on this and try to minimize this time. I work on irregular shifts: several hours in the morning, in the afternoon, in the evening. This is done in order to stretch the maximum working day and try to reach as many users as possible from different time zones. I often answer on weekends and holidays. I don’t go to sleep while there is at least one ticket awaiting a response.

One user, Hacker News, also suggested that I was kept locked in a room, supported by the hashtag #keepsergecaptive.

And what is the reason for the fact that you have been working only from home for 12 years?

The company's offices have always been located quite far from the place where I live. The road took at least an hour in one direction. One time I went to work together with Sergey Zhukov (director of IT - approx.) - he lived here not far and picked me up on the road by car. So the first time we went with him together, discussed various problems on the road, work issues. It was interesting. Then it became a pity to spend a large amount of time on trips to the office (new products appeared, the amount of work increased), and I began to gradually move to remote work. First it was one day a week, then two, then three. So gradually moved to a completely remote work.

But in general, I liked working at the office. Offices of JetBrains are always attracted by different “buns”, atmosphere, decor, food. With colleagues it was nice to chat about something over a cup of tea. But the reluctance to spend time on the road overpowered in the end. In addition, I am by nature a person who works better alone.

Here it is also necessary to note that earlier technical support in JetBrains was arranged in such a way that I alone dealt with all products based on the IntelliJ platform. So contact with other support engineers was not necessary, and communication with the developers was rare. In addition, in order not to distract the developers when they are working, the priority channel for communication was email, and not so that he went and asked personally. Of course, in the very first office, where there were about 10 of us, everyone was sitting in one big room, and it was faster to go and ask. But, from my point of view, this is still not very good, because if the developer is distracted by questions, then it will take him a long time to get back to his task. And then the office became larger, there were many rooms, it became a long time to ask, so they switched to electronic communications.

Working at home, I am less distracted, listen to music through the speakers, type on a noisy mechanical keyboard, without disturbing my colleagues. At any time, you can take a break, do household chores, favorite hobby, or just sleep. My productivity in this mode is much higher than it was when working in the office, but this is not for everybody for various reasons.

And there is no such thing, at least occasionally, that you feel that you lack some kind of live communication with colleagues? Or are you completely satisfied with the format of remote work?
It is hard to say. I am an introvert by nature and feel comfortable even when I do not communicate with colleagues for a long time. On the other hand, yes, you lose something on this, sometimes you want to talk to some workers and not only topics.

When you still come to the office or meet with colleagues at a corporate event, there is no feeling of “who are all these people”?
There is a feeling, it has long appeared. The company has grown quite a bit lately. And there are even people who work in the office, but not everyone knows each other. Employees sit on different floors, and the office is no longer alone. And people communicate only within their teams, and very few people from the neighboring teams know. So, I think, this is not only applicable to me.

Yes, I agree with you here. And how old are you, it turns out, have been doing support at JetBrains?
It turns out that 15 kopecks. Since January 2002.

Wow! In the world now there is a trend that people often change their occupation, are looking for new directions, because they are bored with doing the same thing, want change. But you have been engaged in support for 15 years. Do you have a desire to change something? Or do you find something new in your current activity?
IntelliJ IDEA is a very complex product and is developing very quickly. Literally every week there are new features, support for new languages, technologies. And if you try to be aware of all these changes, you simply do not have time to think about something else. This is already very much, probably even more than a person can assimilate, understand and realize. In general, do not get bored.

I heard that there are cases when the technical support engineers at JetBrains started developing our products themselves in order to get to know them better. And how do you cope with knowing the product well?
I myself use the products of JetBrains to develop my applications. I have several such projectors. For example, an application for Android. It appeared at the moment when we just started developing support for Android. This time synchronization application is ClockSync. He now has over a million downloads on Google Play.

Interesting. What other applications did you do?
I also have such an interesting project written in Java in IntelliJ IDEA. Philips has Ambilight technology (Philips' patented backlight technology for TVs). The point is that the TV illuminates the wall with those colors that are now on the screen in order to expand the visual presentation of the picture. And they also have such Philips Hue bulbs.

There was an application for mobile platforms (Android, iOS), which allowed to synchronize light bulbs with ambilight on the TV. This was not very convenient to use, because it was necessary to manually turn on the phone, put it on charge, start synchronization there. And, it turns out that every time you want to watch TV with this effect, you have to go through the whole long process of tuning. I had the idea to automate it, and I wrote an application that synchronizes light bulbs with ambilight on the TV. And it does not work on a mobile platform, but on any device where you can run Java (on a router, on a server, on a home computer, on a Raspberry PI, etc.). The biggest difficulty was that the algorithm that converts the color that the TV returns to the color of the light bulb is closed. I managed to get around this by taking from the Android version of the application the already compiled classes that implement this proprietary algorithm.

I also made a convenient API. For example, you can automate work and ensure that when you turn on the TV and play the movie, the synchronization of the lights automatically starts, and when the movie ends, the backlight returns to its original state. There is also any automation for “smart home” in order to change the settings of light bulbs quickly from a computer or other devices. The piece is highly specialized rather, so not very popular. I did mostly for myself, but then I put it in open access and made a support group on Google+, where I answer questions. The program is called HAmbiSync.

And how do you find ideas for such applications? You take them from the world around you and then pick up the technology and the right tool from JetBrains, or do you start from technology, for example, do you want to write something in Java, and are you looking for a task, proceeding from this?
First, of course, there is a problem. And then I look, which of our products can help me to solve it, and at the same time I study the product. For example, I have Ruby scripts for my home automation, I wrote something in Python.

There is another very old project that has not been supported for a long time. I started doing it before I came to work at JetBrains. It is written in C ++, and then we did not have an IDE for C ++, so it was written in Visual Studio. This is an AMIP plugin that integrates with popular audio players and allows you to get the name of the song that is playing from them. This information (and other tags) could be transferred to other applications, written to a file, or transferred to then popular IRC. Or even make a dynamic banner, a picture that, when addressed, will show what kind of music you currently play. And this picture can then be inserted into the signature on the forum, or in ICQ or Skype to transfer. And at some point it took to make an interface with settings, of which there were a lot. Then we had a GUI designer for Java in IntelliJ IDEA, and I very actively applied it in this application, making the advanced settings. And at the same time I studied how it all works.

I'm looking at what you have on your nickname CrazyCoder on many resources. Do you feel more like a coder / developer or support engineer?
I have not been doing programming professionally for a long time. For me, programming is a hobby. And technical support is my professional activity. But I, of course, feel like a programmer, because I started with this. And now I continue as a hobby to do this, and it is interesting and helps me to work in those. support. It seems to me that it is impossible to support the product for developers qualitatively, without being the developer himself, at least to some extent.

If we talk about your work as a support engineer, then you remembered the period when you alone supported all products based on the IntelliJ platform. Well this is probably a lot of requests. How do you prioritize them, how do you choose which ones to answer faster and which ones to postpone for later?
I have everything simple. There is a queue of input questions, and I answer in order. If I see exclamation marks and inscriptions in the headline that everything is broken and nothing works, nothing starts, then yes, I try to answer such questions first. Otherwise, everything is in order. I'm getting old just to respond very quickly, so backlog is not. The maximum backlog at the beginning of the day can be 15-20 questions.

And how do you manage to answer so quickly? There are also users who send some huge pieces of code, complain of many problems. This all takes time to sort out.
Yes, if there are some difficult questions that take a long time to figure out, I usually postpone. I answer first to what I can quickly answer, so that people do not wait, and then I deal with those problems that take time.
In fact, a very large percentage of questions are known problems. And it is important to simply understand what the problem is, and find the bug report that is already ready in the tracker or some kind of ready solution.

I try to answer as briefly as possible and in the case, without unnecessary introductions and other regular phrases. I use several utilities that speed up the work very much (the main ones are templates via AutoHotkey, clipboard history with quick search through Ditto Clipboard and ShareX to create and download screenshots, short videos). Also help properly configured alerts. You start answering immediately when a new ticket appears, users are shocked, having received the answer literally within a few seconds.

Do you have any base of known problems and solutions? Or is it in your head?
The base is the Internet and YouTrack. Everything can be found there. I usually look at YouTrack first. If nothing was found, then I search the Internet for some keywords. Very often there is an answer to StackOverflow. Sometimes it happens that you find the answer, you start to look at it, and it turns out that you wrote it yourself. There are many problems, it happens that you forget that you have already dealt with this problem. The brain is no longer able to remember all the problems that have passed through you. You can also search in the base of all technical support tickets, maybe some of your colleagues have already come across something similar. The most frequent problems published in the public Knowledge Base. There is also a database of templates in AutoHotkey, which are revealed from mnemonic abbreviations (by analogy with Live Templates in IntelliJ IDEA), mostly links to some resources or standard phrases used in compiling the answer.

Users are different. Someone just asks a question, someone later writes a special thank you, and there are very emotional and not very positive letters. Is there any recipe for how to cast off emotions and respond to a person politely and to the point?
At first it was difficult to restrain myself. Now you try to abstract away from such things, from the fact that the user can be angry, dissatisfied. The most important thing, as it seems to me, is to put yourself in the user's place and imagine that you yourself got into such a situation that nothing works for you, that you have a project deadline, and you need to urgently solve some problem in order to continue your work . Often it helps to understand the user and help him. That is, the key point is to present yourself in the place of those who contact technical support.

Tell me, is there any letter from the user that is most remembered?
There was a letter from a 75-year-old grandmother who set up RubyMine for herself and began studying Ruby on Rails. And right away, right off the bat, she hadn’t been programming for many years, the last thing she had to deal with was, it seems, punch cards. And she had such a sharp jump from punched cards to heaped client-server applications. She had a lot of questions, and she even somewhere did not understand the basic principles of how it all works. But the communication was interesting, explained to her the basics, told how to set up the IDE and the environment.

Let's go back 15 years. How did you even get involved in technical support? I studied at the university on the 4th year. And something occurred to me that I needed to find a job. Before that, I did not have a permanent job; there were only some part-time jobs. Well, I decided that it was time to find something permanent, serious. I went to the job.ru site (then it was very popular) and began to look in a row at all the vacancies that I even fit, and send my resume there.

Responses began to come, I began to go on interviews and to look that there offer. I considered vacancies not of technical support, but some kind of programming mainly web technologies (I studied PHP, Perl, HTML, CSS, etc.), looked at vacancies on C and C ++ for beginners. And then I found such a job, which was called Java User Support. And nothing else was written, it was all description. I thought it was interesting - I sort of know Java, I began to learn it and I liked the language. And what is User Support - probably, someone will need help.

At that time I had a popular plugin and a forum in which I answered users. And I thought that I can help. So I decided that this might suit me, and came for an interview. At first it was in some recruiting company (at that time they used the services of a third-party company that carried out a preliminary selection, there was no HR department). I had an interview and was invited to the JetBrains office. We talked, and when I arrived home, they immediately called me back and offered me a job.

That is, you did not bother, that this is support? Did you want something related to IT, and not specifically development?
Yes, I was then not important, the development of this or communication with users. And then they also told me what the Java IDE product was, and it was interesting for me to use it, to understand it, to write my own programs. That is, there was both development as a hobby and work in IT, in a developing young company, where you could gain experience and gain knowledge in technologies (VCS, Refactorings, Unit Tests) and methodologies (Scrum, Pair programming), for me it was all new

And during these 15 years, did not come the thought that you want to return exactly to full-time development?
For me, development is a hobby. I can not imagine myself engaged in the development of full-time for the money. I think this is quite a stressful situation, when you have a lot of bugs in the tracker, and their number is growing every day.

And support is not a stressful activity?
, , , . (, ) . , . - , .
, . , . : , . , .

? ?
, . - , , , , . , , . , – . , , - , , .

?
It happens. . , , , , . , , . , - . , , . , .

! , , JetBrains!

image
, CLion JetBrains

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


All Articles