“Understanding how the system works allowed us to hack a lot”: Roy Beniosef on Android development
How to understand that a person is very deeply immersed in the world of Android and at the same time works for Samsung? Well, if even Google search began to take a photo of this person for the Samsung Galaxy, then this is a clear sign!
Roy Beniosef - one of the world's first GDE on Android, GDG-organizer, employee of the special unit Samsung NEXT. Soon he will come to us with the Mobius conference, and we asked him about everything: from what it was to develop for Android at the dawn of the formation of the ecosystem, to what exactly they are doing in NEXT.
- You call yourself "the first GDE on Android" ...
- This is such a joke, they don’t officially call me that - I just could not find a single Google Developer Expert on Android before me. It all started with the fact that I was a friend of Amir Chevat - now he is the main evangelist in Twitch. He was the initiator of the GDE program , it happened in Tel Aviv. Then, in 2011-2012, I was quite actively involved in the local Android community, so there is nothing surprising in the fact that, among others, he chose me. The program was then much less structured. Sometimes I jokingly say that I became GDE because at that time they did not bother with the selection.
- That is, there were no standardized procedures?
- No, the program was still very immature: my friend just invited me, and I agreed.
- What did you do at that time? Did reports and write articles about Android?
- Basically, I did public appearances. And I was the co-founder and organizer of the GDG with a focus on mobile apps. I did a lot of reports for MobileMonday and for GDG, we also organized DevFest. All this was in 2011, I do not remember exactly. In addition, we wrote open source code, wrote blogs, but our main occupation was public speaking.
- Android was not yet three years old. What were the most popular topics at the time? What problems were the most difficult?
- In general, the same as today - providing high-quality user experience, performance problems, graphics. To make the application for Android look stylish and work smoothly, hard even now, and then it was even harder. If we talk about what the most significant improvements that have occurred since then - I think they are associated with these difficulties, that is, the restructuring that has occurred in connection with Marshmallow, the emergence of new tools, ConstraintLayout. Now you can write cool applications without creating everything from scratch, and this was very important.
- That is the most tangible change in the fact that there is a base for applications, the necessary tools for UI and frameworks for UI like Material Design?
- Maybe yes. Generally speaking, all this existed from the very beginning, but it was very difficult to work. In addition, Android is always compared with iOS, and there it was always possible to create very beautiful applications relatively easily, with almost no experience. And in order to create a high-quality Android application, you need to spend a lot of time to become an expert. Now it has become easier.
- Why did you initially choose Android? Since iOS was easier, you could go there or not at all in mobile development.
- I started working on mobile applications because it was a completely new field, it was interesting for me to get there - about that time there was a departure from the “dialer” phones. In addition, iOS smelled haughty corporation, and Android - this, consider, Linux. iOS, of course, is also Unix-like, but Android is much closer to Linux. And I am an open source developer, I have Ubuntu on my laptop, so I was closer to Android, I wanted to help him reach maturity. And my knowledge of Linux helped in the early stages of development for Android — when something didn't work, I could always go to the Linux level and solve the problem myself there.
- True? When I started working under Android (it was version 1.6), in order to start working, it was necessary to install the Android SDK, IntelliJ IDEA and then just read the manual and code. What kind of problems did you solve through Linux?
- Variety. For example, when before the advent of NDK we had problems with graphics, I wrote some parts under OpenGL, because I was good at it. I managed to solve problems with some devices that arose at the driver level. Understanding how the system works allowed a lot to hack.
- So you have a lot of low-level work?
- At that time there was a lot of it. I specialize in non-standard platforms for Android - I led the creation of systems for platforms that were not installed on standard phones. Before Samsung NEXT TLV, I worked at Vidmind, where I managed the client group and, among other things, we created our own project for Smart TV and STB together with Hisense based on Android. So my responsibilities included development starting from the Linux level and above.
- So, your experience has made your development on Android easier. Let's talk now about your work with GDG in Israel and specifically in Tel Aviv. What can you tell us about the community there? Is it numerous, what does it do?
- Now the GDG in Israel is significantly less active. Most of the most talented developers here are engaged in cloud technologies, artificial intelligence, blockchains. But there is one very large, active and successful mobile development community - Android Academy. The Academy was founded by Jonathan Levine along with other partners.
“Our readers are well aware of Jonathan, because he gave a lot of presentations at past Mobius conferences. And how are you connected with it and with Android Academy? Do you help them?
- As far as possible. Now we are developing a series of reports and seminars that I will conduct next year as part of advanced courses in the Android Academy. I have an old friendship with them, and I try to help them as much as I can - for example, I led hackathons, and due to the fact that I work at Samsung NEXT, they were held several times in the offices of this unit.
- What will be dedicated to your seminars in the Android Academy?
- We have not decided yet. As a rule, I teach what I understand well myself. These are usually the most boring and technical issues, most often low-level ones - cybersecurity, databases in Android, proper caching of information, proper use of the GPU, and so on.
- Tell us, please, what exactly is Android Academy? We organized it several times in St. Petersburg, and I don’t know if it is in Moscow, so our readers would probably be interested to know what its format is, whether there are courses, meetings or anything else. ?
“Jonathan is much more involved in Android Academy than I am, so it’s somewhat unusual for me to talk about it.” But in general, it is a very active, open and friendly community. They conduct courses like Udacity, some of them are entry-level, others are devoted to more advanced areas, for example, multithreading, graphics, animation. These courses are free and they are open to all.
- Would you recommend attending Android Academy courses in Russia?
- If it is similar to the Israeli - yes, of course.
- As far as I know, Jonathan is trying to export the Israeli model, that is, to make the Russian one as similar to the Israeli one as possible. Let's go now to your work. Everyone knows what Samsung is - a huge corporation that deals with everything in the world, from construction to smartphones. And what is Samsung NEXT and what is your role there?
- Samsung NEXT - Samsung's department for innovation. We are not fully integrated into Samsung Electronics and specialize in software. We have a product division that creates advanced software in the field of boundary computing (edge computing), augmented reality, artificial intelligence.
But 90% of what we do here in Israel are venture investments, and I fulfill the duties of the head of our fund (although I am not). We invest in startups in stages from pre-seed to B, for amounts up to $ 3 million. We evaluate them on the basis of financial investments, that is, we are not strategic investors, this is done by another division, Samsung Ventures, and they do their job well. We have a different strategy, we make investments at earlier stages and invest only in software. In addition, we invest on the basis of financial criteria, but at the same time we invest in those startups that may be of strategic importance over the next 2-10 years, even if Samsung does not yet have a product in this area.
For example, we invested in a startup called StreamElements, they provide streamers with tools for recruiting, growing and monetizing the audience. Samsung has no products in this area, so this investment cannot be called strategic. In addition, a strategic investor would never invest in startups in the pre-seed stages. We decided to invest because we saw how this startup is monetized. But it cannot be ruled out that in the future Samsung will be involved in the field of computer games, and if this happens, StreamElements will be of great strategic importance.
In addition, in Israel, my position is an ecosystem relations manager. In fact, I came up with the name of the post myself, took it from the ceiling. Ecosystem connections typically include, for example, activities that Google is conducting to better familiarize the community with its products. And community management is when you have your own community in which you organize your events. I seem to be doing neither, but at the same time I do a little bit of both. I am an evangelist for technologies that I myself didn’t create, because Samsung NEXT doesn’t develop anything; it’s a venture company. We do our work for free and without imposing any obligations, simply because we want to help people - in this we see our mission. We don't have our own community we partner with other communities and help them. We do this, firstly, because we are good people, and secondly, because the larger the cake (that is, the community), the more pieces will go to everyone, including us. Thus, in the end, we will also benefit from this, that is, in essence, on our part, this is sponsorship.
- Let's talk about those startups in which you invest. Do you evaluate only their design, their software or, besides this, you also conduct a technical assessment of the architecture, processes and so on?
- Differently, depending on what stage is the startup. A startup is not a plan. There are great ideas with terrible implementation and vice versa. By and large, I am in charge of the technical part of inspections, but we also look at the organization of business. Everything never comes down only to the idea, we look at it, and at the implementation.
- What is the most interesting in such work? Meeting new people, meeting new ideas, an opportunity to see the technologies of the future?
- Yes, I like the search for new people - usually they are very smart and enthusiastic people with great ideas. But the most valuable thing is the opportunity to penetrate into new technologies, for which I did not have time before. When I ran a team of 45 developers from Serbia, Ukraine, China, and Israel, I didn't have time to experiment with Firebase, machine learning, or computer vision. Everything I did was focused on a very short term. And now I can afford to delve into new technologies thanks to the fact that they are being researched by the companies we are engaged in - I need this knowledge in order to properly evaluate the projects we are familiar with.
- That is, before you were engaged in the organization of development, and now you are doing something more innovative, and you have time to study the horizon of new technologies. Sounds really interesting. Does this job have any flaws?
- Of course - I myself do not create anything myself, but I only estimate whether someone else can do what he plans, and sometimes I provide money and help. Here are completely different sensations, different returns from work. I really like the process of creation, and specifically this feeling is not here. This is a disadvantage.
- Do you have any project that you do in your free time?
- Yes of course. You can not experiment with new technologies, while not collecting anything for yourself. There is a project I have been working on for some time.
“Can you tell us something about him?”
- As I said, I wanted to experiment with computer vision and machine learning. I wrote a small Android application that communicates with Firebase and uses TensorFlow on the device itself and in Firebase. I installed this application on an old phone and put it in my dining room. He checked the presence of people in the room and, if he found someone, would shoot a video. And I must say that my wife never turns off the light. Therefore, the purpose of the application was to predict whether a person will turn off the light when leaving the room, and if not turn off, send a reminder to the phone.
The funny thing is that after a few weeks it started to work - it’s funny because the application is, in general, not too smart. It just sent a reminder every time my wife was in the room, because she never turns off the light, and I always turn it off. That is, it was not very clever, but it was funny that it could distinguish us, that is, it created its own logic, which I did not write.
- Yes, it sounds very cool. Solving home problems with the help of new technologies.
- In fact, I wanted to see if I could really write something with this technology, and not just read the article and think to myself that, probably, it is realizable.
- Tell me, what event in your professional life brought you the most satisfaction?
- There is a lot to talk about. I think the biggest honor for me was participating in Google I / O as a speaker two years ago. I am also very pleased that year after year my membership in the GDE program is confirmed. So in my career there are many moments because of which I consider myself lucky. My example proves that you can make all imaginable mistakes, and, nevertheless, be successful. I was expelled from two universities when I started working on Android. Android was then a slow system with a lot of failures, while at that time the boom started on iOS. In addition, the startup I came to spent 30 million and went bankrupt. Failure followed failure, and yet, I feel successful because all these events have allowed me to grow.
- I believe that you can not come to success without making mistakes. And if mistakes are large, they can learn a lot. My next question is about your upcoming report on the Mobius "G (PU) force". What exactly do you want to tell? What problem do you want to solve?
- If you are developing for OpenGL, for example, writing games, then you have a certain idea about how to use a GPU and what to do if it behaves not in the right way. If you are writing under Android, then when your code is naughty, you do not know whether this happens because of your error, because of problems with the processor, or because you are using the GPU incorrectly. The report is based on real case studies from the experience of the company I used to work in - Vidmind, as well as several case studies that I specifically watched to see if anything has changed in the last three years. We constantly had the most incredible failures, and we could not understand why. It was only much later that I realized that we had misused the GPU. In the report, I will also explain how to correct these errors, and propose rules
Of course, with new tools, new devices and new operating systems become easier to work with. But most developers do not have the ability to create programs exclusively for the latest devices, so there is a tendency to write applications that work very poorly on all devices. Most of these difficulties are related to the implementation of the GPU. If you have an idea of what Android expects from you at various API levels, you can write an application that will work beautifully no matter where it is deployed.
“So your thought is that it is important for a professional Android developer to know how the GPU works, what the GPU expects from it.”
- Yes. Of course, after this report you cannot say: “Now I can do something that I did not know how before.” I show examples of how the GPU is integrated into the Android ecosystem. Knowing what needs to be tested, you can create an application that will always work beautifully, and I want to demonstrate it.
- I hope it will be very useful to our readers. In the end, I would like to ask - what would you like for conference visitors?
- I would like to learn a lot about technologies and about each other. Personally, I, as a rule, have very little to bear from reports - which, of course, is a lot of irony, since my career, in general, is built on public speaking. But for me, visiting reports has always been a source of inspiration. I write down a few key phrases, and then I try to collect something on my own to understand if I understood the speaker correctly. Therefore, I believe that conferences are an important source of inspiration, as well as a place where you can meet and communicate with other developers. Where can I get some new perspective that can help a person write what best suits his practice?
A description of Roy’s report can be found on the Mobius website , and there are descriptions of the rest of the program’s reports. The conference will be held in Moscow on December 8-9 .