📜 ⬆️ ⬇️

“IOS application VKontakte has a high threshold of entry”: interview with Alexei Savin



The application of the application is different: there are those who are used from time to time, and there are those for which millions of people spend a lot of time every day, installing them on a new smartphone first thing.

The VKontakte application is of the second, so it is interesting to look inside and understand who is working on it and how. We took a short interview from iOS developer Alexey Savin, asking about the features of work and about life.

- What exactly are you doing?
- The last three years I have been working as an iOS developer on VKontakte. I am engaged in tasks related to multimedia: video and online broadcast.
')
- What did you do before you started your IT career?
- Like many, it began with the fact that in the first year I tried to freelance a bit: I had a page for online stores. Then my friends and I tried to make our mobile app. It was called "May 9th." In fact, it was a map of the city, on which points related to the Second World War were marked, and it was possible to read about each of them. It was the first success - the application was noticed, it turned out to be in any subject collections.

Then I gradually moved to work completely in outsourcing to mobile applications. And three years ago I came to VK.

- How did you come to the iOS development specifically - with the purchase of an iPhone?
“Then I didn't even have an iPhone.” I was in my second year, it was the time of iOS 6, I bought myself a Mac, and I wanted to try. It was fashionable, it was heard, I wondered what it was like to write a mobile application, and since the Mac appeared, the choice of platform was coming to the fore. However, I also tried Android around the same time (as part of a university course in Java). But compared to iOS, I liked it more.

- Recently, we asked iOS developers about the Apple presentation, we will also ask you: what is the phone now, and did you want to change after the presentation?
- Now the iPhone X, I do not plan to move to a new one, I usually do it once every two years. Next year, I will probably take the next one.

- What do you think about iOS 12?
- The fact that the release was about stability, of course, pleases. After the upgrade, it is felt that a large number of some annoying minor bugs are missing. That is, they decided to take a break for a year to improve stability, and it seems it turned out great.

- Turning to the VC application theme: did you have a lot of work in connection with the release of iOS 12?
- Oddly enough, in this version there were only a few minor bugs. To support iOS 12, it did not take much to change anything. The last time was much more work, there we spent more than one week.

- VK applications are well known, but who makes them is far less well known. Tell me, what is your mobile team, how many people and how does it work?
- Now iOS developers 18 people. They consist in different product teams: there is a team that deals with media, there is a messenger team, there is an infrastructure team that implements some common solutions used by other teams. The teams have mobile developers for both platforms (2-3 people each), there are backend developers - in general, the full stack is obtained, which completely covers its own tasks. We sync regularly across the platform between teams to share news and knowledge.

- You have a huge number of users, how does this affect the development?
- Any situation that you consider unlikely and do not take into account, will manifest itself, and immediately thousands of users. Crash on tens of thousands of people is scary and unusual, but it develops a huge level of responsibility.

- Where do ideas for features come from, and what happens with the idea from the moment of its approval to the release in the App Store? How does the development of this all happen?
- Each product team has key indicators that it focuses on. For example, if you take live broadcasts, this is the number of broadcasts generated per month and the number of their views. When discussing a feature, we determine how it will affect the relevant metrics. Only after that we decide whether we will do it. The process is pretty standard. We put it in our plan for the near free time. If this is a cool idea, and you want to make it faster, you can move something. Further we form the documentation: what is needed by design, what is needed by API. After that, start doing.

- As far as I understand, you have a release train, can you tell me more in detail?
- The application is released every two weeks. Each team should say at the beginning of the week that it plans to add to this release. Five days before the release - feature freeze, when you can no longer add anything new, and if someone did not manage to upload their changes, they will not fall into this release.

- And how does this process look technically, what about code review and CI?
- We have a review code, there is a CI. And for each commit we have an assembly and it is distributed inside the staff of House Singer - about 200 people in total. All the staff we have become accustomed to use the test builds of the application. The idea is that the assembly for employees should not get anything not tested and not verified. If something is poured into Dev, then the developer assumes that the feature is completely ready: it has been tested, and employees can use it, this is a normal stable version.

Thanks to this, we get real feedback from users who use this build almost around the clock for two weeks between the release train. In this way, we can generate feedback.

- You have an atypical application (not every developer is engaged in a large social network), and the existing is not the first year. Can you tell me how many lines of code there are and how difficult it is to work with it?
- How many lines of code, I will not say straight off. But the fact that the project has been affecting many years: there is a lot of Legacy code, there are places where MRC still remains. And almost all the solutions are self-written: there are practically no external dependencies. The application has a high threshold of entry, including because of this.

- With such a threshold, how long does the onboarding process for new developers take?
- All new developers initially join the infrastructure team before they join one of the other teams. You can also stay here. There they spend one and a half to two months - probably, this is the “adaptation period”, during which they become familiar with the application and do some small tasks that do not affect something.

- You will make a report on video broadcasts on iOS on Mobius. Tell us about the project that made the report: where did the idea come from, how did it happen?
- The project is what became a separate VK Live application. The idea came when I was still at university. At that time, my friends and I often tried to make some demo applications, test some ideas, and periodically chose fashion themes for this. Once, on January 1, after the New Year, we thought that we had not done anything for a long time, and we should choose a topic. And then Vkontakte conducted a competition on the mobile development of VK Challenge , within the framework of this competition a number of topics were proposed, and there were live broadcasts. We thought that we did not know anything about them, so it would be interesting to try. As a result, a prototype was made in a couple of months, and VK Live began with this.

- A very interesting story: student participation in the competition resulted in the fact that you have already been in VC for three years. Is this an isolated case, or are contests systematically conducted? Do those who are just becoming developers have the opportunity to repeat a similar success story? Do you have, for example, your own development school?

“Various events are held systematically, including hackathons and the VK Cup programming championships. Historically, there have been many competitions both in design and in development, and I am not the only person who got into VC like this. There are no development schools, but, for example, we recently had internships on machine learning. In the future, we plan to hold such events more often.

- Returning to VK Live: what's the difference with competitors like Periscope? Why should the user use your application?
- The main difference in the social graph. People who create broadcasts with us will have certain viewers: their friends from VK, with whom they constantly communicate. They do not have this graph at other sites.

- And in what direction is the project moving now?
- In the direction of increasing interactivity. For example, this is an opportunity to add a poll during the broadcast. That is, additional ways to interact with the audience.

- When you work in such a large-scale project as VC, does a large amount of work put pressure on you?
- There is no problem. The people who work with us are madly in love with what they are doing, they feel responsibility for it and receive a certain high from it. Including me. I can easily sit in the office all night and simply do not notice it. At the same time, it is quite possible for us to observe work-life balance.

- What do you like to do besides writing code?
- Travel.

- What are the most memorable places visited?
- Of the latter - Peru. Machu Picchu is a magical, very beautiful place. Unusually. I also really liked the Grand Canyon.

- What would you do if you were not an iOS developer?
A: I would probably try myself in machine learning - this is what seems interesting, promising and what will be relevant for the n-th number of years.

- Last question. By what you see, how should an iOS developer evolve in current realities?
- Now a lot of developers are "sharpened" for some specific frameworks. That is, in their work they used only large libraries from Facebook / Google, often almost did not deal with native frameworks, and do not always understand how they work. And it seems to me that, among other things, it is important to try to understand more deeply how the main components of the system work - for example, the same UIKit.

If you are interested in technical issues of live-broadcasts on iOS - Alexey will talk about them in detail on December 8 in Moscow at the Mobius conference.

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


All Articles