Minko Gechev
Interviews · 13 min
GuestMinko Gechev

“Google Is Far More Dynamic and Chaotic Than It Looks from the Outside”

Translated from the Bulgarian original →

Minko Gechev is part of the Google team in Silicon Valley. He is one of the developers of Angular, the open-source framework that made today's hypercomplex websites possible.

He earned his master's degree from Sofia University in 2015, and in 2017 he co-founded the startup Rhyme. The company offered world-class online courses, and our guest led its team of software engineers. Just a year later the project was bought by the giant Coursera—the first acquisition of its kind for them.

Minko has received the President's John Atanasoff Award, named after the Bulgarian-American inventor of the electronic digital computer, in two different categories.

For many years he worked on building open-source software. His project Codelyzer, for static code analysis of Angular applications, was downloaded more than a million times every week—over 100 million times in total.

After that he decided to carry on as part of the Google team. When he went to his job interview, he found out that all of the megacorporation's nearly 3,000 Angular-based projects were using some of the rules from the Codelyzer he had created.

Today he is a technical lead and the manager of the team responsible for relations with other developers.

He holds a black belt in karate. Over the past seven years he has given more than 120 talks in 20 countries to over 50,000 people.

– Life is pretty wacky. One of your Google job interviews included Angular's creator, Miško Hevery. I happen to earn my own living with Angular too—that's just how it turned out. How did an interview like that not stress you out?

– I knew Miško before that. I'd written articles and tools, he was familiar with them, and we had talked because of that work. I was genuinely impressed the first time I found out he knew my work. I was still living in Bulgaria; it was 2015.

Minko Gechev and Rumen Radev
Our guest receives the John Atanasoff Award from President Rumen Radev. Photos: personal archive

– Which tech figures are authorities for you right now? Who are your idols?

– I follow the Turing Award, which is something like the Nobel Prize for computer science. There are many interesting people there doing impressive things. Ken Thompson, for example, the creator of Unix. The latest award was for neural networks, and it went to Geoffrey Hinton, a colleague of mine at Google.

– Is it easy to get used to saying “we at Google” and “my colleague at Google”?

– It feels a little strange when I talk about, say, Ken Thompson or Geoffrey Hinton. They're my colleagues, but I feel as if we're in different galaxies. If we had a chance to interact in some way, to create something together, I would get in touch with one of them for a chat. I have enormous respect for these people.

Minko Gechev

– What surprised you about the way work gets done?

– Everything is much more dynamic and chaotic than I imagined. And yet, somehow, things get done. For example, because of the pandemic, maybe a month before Google I/O this year it still wasn't entirely clear how we would take part, which surprised me. In the end we organized everything and our participation was a success, but things really are very dynamic.

There is also a far more engineering-driven approach, at the expense of a formal, mathematical one.

Mathematics and software engineering are very closely linked, which is why people approach programming differently. For some it's more mathematical, for others more engineering-minded. Here the second dominates. There isn't much planning aimed at proving that a given solution is theoretically sound. Instead, we quickly run through different solutions and get feedback from the market and from developers to figure out which direction we'll go in.

Another thing that surprised me was that we, as Angular developers, are responsible for all of the nearly 3,000 projects at Google that use it. If we “break” one of them, we have to fix it. That, in turn, is why we build a technology that stays stable across versions.

– Which Google projects are the most exciting to you, the ones you expect to “explode” in the near future?

– I'm mostly interested in infrastructure projects like Angular, but also in ones that are more theoretical from a computer-science point of view. For example, I really like what they're doing at DeepMind and at Waymo.

I hope that soon we won't have to drive cars ourselves—driving leaves so much room for error.

I believe Waymo will soon come out with something that is ready to use, and we'll be able to ride around in peace without having to drive.

At Google we have an enormous number of projects and about 130,000 employees, so it's hard for me to know exactly what's going on everywhere in the company.

Minko Gechev
An online karate training session during the lockdown. Photos: personal archive

– Are there technologies that frighten you?

– What sometimes frightens me is rather the choice of technologies that lack serious support. Mostly because I see how much work it takes on our side to make sure Angular is a well-integrated platform that stays stable across versions. It frightens me when I see a company with hundreds of thousands of employees using a technology with no clear support model for one of its critical projects.

– I see you're also interested in AI-related technologies. You use it, for example, so that apps load on screen only the content most likely to be needed. Why didn't you keep going in that direction?

– Let's say machine learning is very interesting and has great potential, but at the same time it's quite unclear what the optimal approach to developing a given model is. The process of exploring and searching for the right approach is interesting, but there are a lot of unknowns. Whereas in infrastructure projects and in purer, theoretical computer science, things are much clearer.

– Will artificial intelligence take programmers' jobs?

– Well… I hope so! I don't know if you've tried the famous Copilot—it does pretty well at times, doesn't it?

Minko Gechev
Minko against the backdrop of the Grand Canyon. Photos: personal archive

– Yes, absolutely. But for now I wouldn't use it every day…

– I switched it off too, but the idea is good. Bulgarian programmers have also been working on something similar. There are various interesting applications, but I think it will take many years before AI takes our jobs. Still, I hope it happens.

There will be far fewer mistakes, I imagine, just like with driving.

– But we have to make money somehow—I'll have to change professions yet again…

I came across a talk of yours in which you say that one of the leads of the TypeScript team is a friend of yours from Lyulin, a sprawling residential district of Sofia. Are there many Bulgarians in senior positions in Silicon Valley?

– For many years I've also been greatly motivated by another Bulgarian who, incidentally, is also from Lyulin—Stoyan Stefanov. I learned JavaScript from his books. Last month we met in Los Angeles, the second time we've met in person. We both love rock music, so we met at a rock club on Hollywood Boulevard and talked about JavaScript and about Bulgaria.

There are also quite a few successful Bulgarians at Google in various fields, including AI.

This and the following photos show our guest as a photographer. Minko took them over the past few years.

– You used to teach Angular, and now you work on building it. What surprised you when you landed on the other side?

– To be honest, it isn't all that different. My current role is about communication; my goal is to make Angular as accessible as possible for developers, to understand exactly what they need. The real difference is in the work on open-source projects. I used to create them every week, publishing some module to NPM that solved a problem of mine and, accordingly, other developers' problems too. At some point there were too many—I have over 400 projects, and they're hard to maintain.

At Google the expectations around maintenance are different. In some cases millions of people were using my projects, but it wasn't the Google brand behind them—it was my name, as a hobbyist developer of open-source tools. The responsibility now is greater.

Now I can propose solutions, but they have to be very well justified. My idea has to go through various discussions and be approved by all the lead developers, and then we discuss it with programmers outside the team and with various large companies. All to see whether the change makes sense and will bring some improvement to the technology, or whether we'll have to drop it.

– Are there things you've already changed in Angular this way?

– Oh yes, quite a few. I started with “differential loading”—sorry for the foreign term, but I've never had to say it in Bulgarian. Most recently I led the development of Angular DevTools. Right now I'm working on the design of optional standalone components. That's something we should share in the next few weeks; there are four or five of us on the team.

– What's the logic behind big players like Google and Facebook investing in Angular and React, development frameworks that even large companies use for free? They're open source; they don't earn anything from someone using them…

– Angular came about quite organically; it wasn't planned. Nobody sat down and decided that this project had to be built. Rather, while building a particular product, they spotted an opportunity for an optimal way to develop user interfaces. Miško had a lot of experience with Flash and Flex, and he saw that there was a big empty space in that area in the JavaScript community. Later the technology contributed to a significant boost in the productivity of Google's developers.

Being open source has a number of advantages. The license is completely free, and in this way Google contributes to the development of the community. So developers like it as a company that supports them.

It's also easy to hire people who know Angular. It's open source, not something internal and specific, so new people can become productive inside the company very quickly once we hire them.

On top of that, when it comes to open-source projects, the community helps us enormously with all the resources it develops. For example, before I joined the team, I made a static code analysis tool. Google used it and so gained functionality for Angular without having to hire engineers. If someone wants to find out how to deal with a particular problem, they just type it into a search engine and get answers that weren't written by us—on StackOverflow, for example.

– As a Bulgarian who has ended up in the mecca of software technology, how does our country's position look? Where are our strengths, and where are our weaknesses?

– It depends a lot on education, on the path people have taken. We have a very good programming community in Bulgaria—friendly and constructive—of a kind I haven't managed to find in San Francisco and Silicon Valley. Besides, the flow of people through Bulgaria is different; things change more slowly. Communities can be more close-knit and friendly, whereas here they turn over faster.

From a technical point of view, things are quite similar.

Broadly speaking, what we studied at the Faculty of Mathematics and Informatics, my colleagues studied at MIT too.

There are advantages to having graduated there; if I'd had the chance, I would have done it all the same.

– And doesn't the Faculty of Mathematics and Informatics (FMI) have advantages? Do they have the life of Studentski Grad, Sofia's sprawling student town, in Massachusetts?

– I imagine they have a good student life there as well. A big advantage of Bulgaria is that education is far more affordable financially.

– In your view, what are the most important qualities for succeeding as a programmer?

– Many people focus on learning basic technologies, even frameworks. I'm often asked how to become a senior Angular programmer. If they are that kind of developer, they'll be senior Angular, senior React…

For me the right approach is to look at the foundations, at theoretical computer science. You don't need to dig too deep or prove equivalences between computational models.

Just pay attention to algorithms, to the fundamental principles

of computer science and software engineering, rather than learning specific application programming interfaces. That way people can build a base of knowledge that is reusable across different technologies and different programming languages. Their skills will stay more relevant than those concentrated on one particular technology that might disappear in a year.

– Why do you think there's this stereotype of programmers as boring, stern… well, nerdy people, let's say?

– I've been thinking about this quite a lot lately. At some point I realized I was pretty socially awkward. I noticed that things started to change a little:

I started feeling more comfortable with people when I started spending more time with people.

A fairly simple solution. Writing code 50 or 60 hours a week simply doesn't allow us as much personal contact as people whose job that is. And so, since we don't build those skills of communicating and connecting with people, there's no way we can be socially adept.

There's another aspect, too, about one's approach to life. I see it in programmers, and even more in mathematicians, especially those who do pure mathematics. There, things are much simpler than in real life; there are far fewer concepts and connections between them. Nothing is chaotic. Very often it's the same with programmers. Mathematical logic is quite pure and clear, and so is programming, if to a lesser degree.

Whereas real life is utterly different and very chaotic.

So as programmers we often have to live two lives. One is with programming, where after a few hours of debugging we can understand what's going on. The other is this murky life in which, no matter how many hours of debugging we put in, we'll never understand the root cause of certain things that have happened. It's a very interesting problem. Very often we look for clarity in real life that we can't possibly find, because the system it runs on is vastly more complex than lambda calculus or a Turing machine.

Minko Gechev

– Do you come to Bulgaria often? What do you miss most?

– The last time was five weeks ago. What I miss most is my family, definitely. Mainly that.

Actually, every now and then I also miss… the bean soup at Pod Lipite (Under the Lindens), the old tavern in Sofia's Lozenets district.

– And do you vote in Bulgarian elections?

– I find it hard to get organized, and I don't feel well-informed enough—that's my own fault, really. Over the past five years I've spent a few months in Bulgaria in total, and it's harder for me to cast an informed vote. When I lived there, I voted.

– What do you dream of?

– Of a life in which I'm on good terms with my family, loved ones, friends… In which I have the chance to do what I want and contribute in some way to other people's lives.

Almost there…
If you liked the story, support the project. The site has no ads.
Support

Next story

All stories →