Image for post
Image for post

Angular’s Minko Gechev: I Still Experience a Rush of Dopamine When I Complete a Challenging Project

We talked to Minko Gechev, an Engineer from Angular core team at Google, a man behind Codelyzer, Guess.js, and Revive.run, and an author of the bestselling book, “Switching to Angular”

JSNation
JSNation
Apr 1, 2019 · 8 min read

In his interview with JS Nation, Minko Gechev tells us the story of how the love for astronomy led him to programming and software engineering, how he moved out from Bulgaria to Silicon Valley and landed a job with Google, how he worked on his master projects, Codelyzer, Guess.js, and Revive.run, predicts the future of machine learning, and gives advice on how to get into Google.

Hello Minko, and welcome to the interview with JS Nation! Can you share your story? How did you get into programming?

In the same time, I was participating in school software engineering competitions where I had to develop a system and present it in front of an audience. Later, a jury of experts had to evaluate the work of all participants and pick the laureates. When I had the requirements for the system in my head, I was getting obsessed until I had it up and running. I remember spending tens of hours writing code for my projects. Later, having the functioning system, I was feeling so proud of myself! I still experience the same rush of dopamine when I complete a challenging project.

Having the opportunity to create something new from scratch, just by using my laptop and my imagination tilted the scales towards pursuing a degree in computer science.

How and when did you relocate to the US? What were your first impressions from Silicon Valley?

Silicon Valley is full of creative people. The atmosphere is definitely unique — during a walk in the park, you can hear people discussing immutable deployments or recurrent neural networks. On every corner in SoMa in San Francisco, you can find a different startup.

Thanks to open source and conferences, even before I moved to Silicon Valley, I already knew people here. Later I started organizing Angular San Francisco, so my transition was pretty smooth.

Image for post
Image for post

How did you get into Google? What advice can you give any aspiring programmers who want to work for Google?

That’s how I discovered that my real passion is building tools for developers. Reflecting on this, I decided to leave Rhyme.com and pursue a new career path as an engineer in the Angular team at Google.

The process of joining Google is standard — a recruiter reaches out to you, you go through a series of interviews, and finally, there’s the team matching process. The interview process is mandatory for everyone to enter the company. Although sometimes there are excellent candidates who do not pass the coding questions, the process makes sure that the people who join have some required qualification to pass the entrance bar.

If you are interested in a particular team, the way I was interested in working with Angular, things are a little bit more complicated. In such cases, I’d strongly recommend you to collaborate with the team as an external contributor — this is especially easy if they are doing open source. You can pick an issue on GitHub and start working on it, help with documentation, etc. This way, even before joining the company you can evaluate if the team you’re collaborating with is a good fit for you and vice versa.

For example, I’ve been collaborating with the Angular team at Google for about 3–4 years before I joined. I did this in different ways — writing blog posts on content related to the framework, creating open source projects, fixing issues, etc. The team was familiar with my work, so they were interested in working with me. After I scheduled my interview, I spent 2 months preparing by solving 3–5 algorithmic questions a day. It’s important to set a deadline by scheduling the interview, otherwise, naturally, you discover more and more things you can learn, so you end up postponing the process indefinitely.

Can you tell us more about your projects?

Guess.js is a tool for predictive prefetching for web applications. In essence, it looks at your Google Analytics (or another analytics source) data, builds a simple predictive model and inserts a small piece of JavaScript in your application. While the user is navigating inside of the application, Guess.js “guesses” where they may go next and prefetches resources. Addy Osmani presented Guess.js during his talk on Google I/O 2018. Currently, Gatsby.js uses the tool for predictive prefetching in their documentation.

In Rhyme.com we used Go for the backend. I like guarantees enforced by static checks, so I built a framework for static analysis of Go applications to help us enforce best practices in our codebase. Later I open sourced this project and called it Revive. It has over 50 configurable rules which can statically analyze a project. It turned out there was a need for such a linter in the community so Revive got a broad adoption.

Since your most recent projects are concentrated around predictive analytics, do you think the use of machine learning to improve user experience can eventually lead to a change in the behavior of the users themselves?

Of course, at the same time, we should respect users’ privacy. There’s a very delicate boundary that we should not cross in our effort to provide better services for the end users.

What’s your opinion on the variety of solutions for the frontend in the coming years? Do you think these solutions will fiercely compete with each other?

I see a variety of different approaches for building applications, development of user interface, development tooling, etc. It’s inspiring to see how open source empowers us to learn from each other and grow our products consistently.

Image for post
Image for post

What are you currently working at in Angular and what future you can predict for this framework?

In the same time, we’re making a lot of improvements in the CLI. We’re working with Bazel to allow large projects to have the same development experience with fast round-trip time as small applications.

What was your most recent talk about?

Why did you decide to write a book (which would later become a bestseller) on Angular? Do you plan to publish other books?

Writing a book is a fantastic experience, which in the same time takes a lot of time and effort. I don’t see myself working on another book in the next couple of years. Maybe at some point, I’ll write a content closer to theoretical computer science, but I don’t have a concrete plan yet.

What do you do in your free time?

Currently, I spend most of my time in San Francisco. I love exploring the different neighborhoods, they all feel entirely different and gorgeous.

I also have an interest in theoretical computer science. Over the weekends I spend some time reading articles about computational paradigms and incremental computations.

Are you excited about the upcoming JSNation conference in Amsterdam this year? What are you going to talk about?

During my talk, I’ll give an overview of what we introduced as part of the CLI. I’ll also share some general practices that developers can use to improve the performance of their applications.



The interview was prepared with the assistance of Marina Vorontsova, a copywriter from Soshace.com. Soshace is a hiring platform for web developers: hire a developer or apply for a remote job.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store