Минко Гечев е част от екипа на „Гугъл“ в Силициевата долина. Той е сред разработчиците на „Ангулар“, фреймуърка с отворен код, направил възможни днешните свръхсложни сайтове.
Завършва магистратура през 2015 г. в Софийския университет, а през 2017 г. съосновава стартъпа „Райм“. Компанията предлага онлайн курсове на световно ниво и нашият събеседник е начело на отбора софтуерни инженери. Само година по-късно проектът е купен от гиганта „Корсера“, което е и първата им подобна инвестиция.
Минко получава наградата на президента „Джон Атанасов“ в две различни категории.
Дълги години работи по създаването на софтуер с отворен код. Проектът му „Коделайзер“ за статичен код анализ на „Ангулар“ апликации всяка седмица е свалян повече от милион пъти, общо над 100 милиона.
След това решава да продължи като част от екипа на „Гугъл“. Когато отива на интервю, разбира, че всичките почти 3000 проекта на мегакомпанията, базирани на „Ангулар“, използват и някои от правилата на създадения от него „Коделайзер“.
Днес е технически лидер и шеф на екипа, отговарящ за връзката с други разработчици.
Има черен колан по карате. През последните 7 години е изнесъл повече от 120 презентации в 20 държави пред над 50 000 души.
– Животът е доста шантав. В едно от интервютата ти за работа в „Гугъл“ е участвал създателят на „Ангулар“ Мишко Хъвъри. Аз самия също си изкарвам хляба с „Ангулар“, така се получи. Как не се стресна от такова интервю?
– Познавах Мишко преди това. Писах статии и инструменти, той беше запознат с тях и покрай тази работа си бяхме говорили. Наистина много се бях впечатлил, когато за първи път разбрах, че е запознат с работата ми. Още живеех в България, беше 2015-а.
– Кои са технологичните личности, които в момента са авторитети за теб, кои са твоите идоли?
– Следя наградата „Тюринг“, нещо като Нобелови награда за компютърни науки. Там има много интересни личности, които правят впечатляващи неща. Например Кен Томпсън, създателят на „Юникс“. Последната награда беше за невронни мрежи и я получи Джефри Хинтън, мой колега от „Гугъл“.
– Лесно ли се свиква да казваш „ние от Гугъл“, „мой колега в Гугъл“?
– Малко ми е странно, когато говоря примерно за Кен Томпсън или Джефри Хинтън. Те са ми колеги, но имам чувството, че сме в различни галактики. Ако имаме възможност за взаимодействие по някакъв начин, да създадем нещо заедно, бих се свързал с някой от тях, за да си поговорим. Имам изключително голям респект към тези хора.
– Какво те изненада като процес на работа?
– Всичко е много по-динамично и хаотично, отколкото си го представях. И нещата, въпреки всичко, се случват по някакъв начин. Например, заради пандемията не беше съвсем ясен начинът, по който ще се включим в „Гугъл I/O“ тази година може би месец преди събитието, което ме изненада. В крайна сметка организирахме всичко, имахме успешно участие, но нещата са наистина много динамични.
Освен това има и доста по-инженерен подход за сметка на формален, математически.
Математиката и софтуерното инженерство са много тясно свързани, затова и хората имат различен подход към програмирането. При някои е по-математически, при други – по-инженерен. Тук второто доминира. Няма твърде много планиране, за да се докаже, че дадено решение е теоретически издържано. По-скоро се обхождат бързо различни решения, получава се обратна връзка от пазара и от разработчиците, за да разберем в каква посока ще се движим.
Още нещо, което ме изненада, беше, че ние, като разработчици на „Ангулар“, сме отговорни за всички близо 3000 проекта в „Гугъл“, които го използват. Ако „счупим“ някой от тях, трябва да го оправим. Затова пък създаваме технология, която е стабилна между версиите си.
– Кои са най-вълнуващите проекти на „Гугъл“, които очакваш да „избухнат“ в близкото бъдеще?
– Аз се интересувам най-вече от инфраструктурни проекти като „Ангулар“, но и от такива, които са по-теоретични от гледна точка на компютърните науки. Например, много ми харесва какво правят в „Дийп Майнд“, в „Уеймо“.
Надявам се скоро да не ни се налага да караме коли, в шофирането има много възможности за грешка.
Вярвам, че „Уеймо“ скоро ще изкарат нещо, което е готово да се използва и ще можем спокойно да се возим, без да се налага да караме.
В „Гугъл“ имаме изключително много проекти и около 130 000 служители, трудно мога да знам какво точно се случва навсякъде в компанията.
– А има ли технологии, които те плашат?
– На моменти ме плаши по-скоро изборът на технологии, които нямат сериозна поддръжка. Най-вече защото виждам колко работа се изисква от наша гледна точка, за да сме сигурни, че „Ангулар“ е платформа, която е добре интегрирана и стабилна между версиите. Плаши ме, когато видя как компания със стотици хиляди служители използва технология без ясен модел на поддръжка за техен критичен проект.
– Виждам, че се интересуваш и от технологии, свързани с изкуствения интелект. Използваш го например за това приложенията да зареждат на екрана само съдържанието, което е най-вероятно да бъде нужно. Защо не продължи в тази посока?
– Да кажем, че машинното самообучение е много интересно, има голям потенциал, но в същото време е доста неясно какъв е оптималният подход за разработката на някакъв модел. Интересен е процесът на проучване и търсене на правилния подход, но има доста неясноти. Докато в инфраструктурните проекти и в по-чистите, теоретични компютърни науки нещата са доста по-ясни.
– Ще вземе ли изкуственият интелект хляба на програмистите?
– Ами… надявам се! Не знам дали опита прословутия „Копилот“, доста добре се справя на моменти?
– Да, абсолютно. Но засега не бих го ползвал всекидневно…
– Аз също го спрях, обаче има добра идея. Български програмисти също се занимаваха с нещо подобно. Има различни интересни приложения, но според мен ще отнеме много години, преди изкуственият интелект да ни вземе работата. Обаче, надявам се да стане.
Много по-малко грешки ще има, предполагам, също както с шофирането.
– Но трябва да изкарваме пари с нещо, пак ще трябва да си сменям професията…
Попаднах на една твоя презентация, в която казваш, че един от шефовете на „Тайпскрипт“ екипа е твой приятел от „Люлин“. Има ли много българи на високи позиции в Силициевата долина?
– От дълги години съм мотивиран много и от друг българин, който също е от „Люлин“, между другото – Стоян Стефанов. Научих се на „Джаваскрипт“ от неговите книги. Миналия месец се срещнахме в Лос Анджелис, за втори път на живо. И двамата обичаме рок музиката, видяхме се в един рок клуб на бул. „Холивуд“ и си поговорихме за „Джаваскрипт“ и за България.
В „Гугъл“ също има доста успешни българи в различни области, включително и изкуствения интелект.
– Преподавал си „Ангулар“, сега работиш по създаването му. Какво те изненада, когато попадна от другата страна?
– Да ти кажа, не е чак толкова различно. Позицията ми в момента е свързана с комуникация, като идеята ми е да правя „Ангулар“ възможно най-достъпен за разработчиците. Да разбера от какво точно се нуждаят. По-скоро има разлика в работата по проектите с отворен код. Преди създавах такива всяка седмица, публикувах някакъв модул в NPM, с който решавах някакви мои проблеми, съответно и на други разработчици. В един момент станаха много, имам над 400 проекта и е трудно да ги поддържам.
В „Гугъл“ очакванията за поддръжка са по-различни. В някои случаи имаше милиони хора, които използват проектите ми, обаче не стои марката „Гугъл“, а моето име като любител разработчик на инструменти с отворен код. Отговорността в момента е по-голяма.
Сега мога да предлагам решения, но те трябва да са много силно мотивирани. Идеята ми трябва да мине през различни дискусии, да бъде одобрена от всички водещи разработчици, след това да я обсъдим с програмисти извън екипа, с различни големи компании. За да видим дали тази промяна ще бъде смислена, ще доведе до някакви подобрения в технологията, или по-скоро ще се наложи да се откажем от нея.
– Има ли неща, които вече си променил по този начин в „Ангулар“?
– О, да, доста са. Започнах първо с „диференшъл лоудинг“, извинявам се за чуждицата, но това никога не ми се е налагало да го произнасям на български. Последно водих разработката на Angular DevTools. Сега работя по дизайна на опционалните самостоятелни компоненти. Това е нещо, което трябва да споделим следващите няколко седмици, в екипа сме 4-5 човека.
– Каква е логиката големи играчи като „Гугъл“ и „Фейсбук“ да инвестират в „Ангулар“ и „Реакт“, среди за разработка, които се ползват безплатно дори от големи фирми? Те са с отворен код, не печелят от това, че някой ги ползва…
– Създаването на „Ангулар“ се случва доста органично, не е нещо планирано. Не са седнали да решат, че трябва да се направи този проект. По-скоро през създаването на даден продукт са забелязали възможност за оптимално развитие на потребителски интерфейс. Мишко е имал доста опит във „Флаш“ и „Флекс“, видял е, че има голямо празно пространство в това направление в „Джаваскрипт“ общността. А после технологията е допринесла за значително подобряване на продуктивността на разработчиците в „Гугъл“.
Това, че е с отворен код, има редица предимства. Лицензът е напълно свободен и по този начин „Гугъл“ допринася за развитието на общността. Така разработчиците го харесват като компания, която ги поддържа.
Също така е лесно да се наемат хора, които са запознати с „Ангулар“. Той е с отворен код, не е нещо вътрешно и специфично, така новите хора много бързо могат да станат продуктивни вътре в компанията, когато ги наемем.
Освен това общността, когато става дума за проекти с отворен код, ни помага изключително много с всички ресурси, които разработва. Примерно, преди да се включа в екипа, направих един инструмент за статичен код анализ. „Гугъл“ го използваха и така получаваха функционалност към „Ангулар“, без да им се налага да наемат инженери. Ако някой иска да потърси как да се справи с някакъв определен проблем, просто пуска в търсачката и му излизат отговори, които не са писани от нас – например, в StackOverflow.
– Като българин, озовал се в меката на софтуерните технологии, как изглежда позицията на страната ни в тях? Къде ни е силата, къде са ни слабостите?
– Зависи много от образованието, от пътя, по който са поели хората. Имаме много хубаво общество на програмисти в България, каквото не успях да намеря в Сан Франциско и в Силициевата долина, приятелско и конструктивно. Освен това потокът на хора през България е по-различен, нещата се променят по-бавно. Общностите могат да бъдат по-сплотени и приятелски, докато тук се въртят по-бързо.
От техническа гледна точка нещата са доста подобни.
Общо взето това, което сме учили във ФМИ, са го учили и моите колеги в „Ем Ай Ти“.
Има предимства да си завършил там, ако имах възможност, бих го направил все пак.
– А ФМИ няма ли предимства? В Масачузетс имат ли живота в Студентски град?
– Предполагам, че и там имат хубав студентски живот. Голямо предимство на България е значително по-достъпното образование от финансова гледна точка.
– Кои са според теб най-важните качества, за да успее човек като програмист?
– Много хора се насочват към научаването на основни технологии, дори на фреймуърци. Често ме питат как да станат синиър „Ангулар“ програмисти. Ако са такива, ще бъдат синиър „Ангулар“, синиър „Реакт“….
За мен правилният подход е да се погледне към основата на нещата, към теоретичните компютърни науки. Не е нужно да се дълбае твърде много, да се доказва еквивалентност между изчислителни модели.
Просто да се обърне внимание на алгоритмите, на основните принципи
в компютърните науки и софтуерното инженерство за сметка на научаването на конкретни програмно-приложни интерфейси. По този начин хората могат да изградят една база от знания, която е преизползваема между различни технологии, различни езици за програмиране. Така уменията им ще бъдат по-релевантни, за сметка на онези, концентрирани върху определена технология, която може да изчезне след година.
– Според теб защо съществува този стереотип за програмистите като скучни, строги… ами, задръстени, да го кажем, хора?
– Доста мисля за това в последно време, в тази посока. В един момент усетих, че съм доста социално непохватен. Направи ми впечатление, че нещата започнаха леко да се променят,
започнах да се чувствам по-комфортно с хора, когато започнах да прекарвам повече време с хора.
Доста просто решение. Писането на код по 50-60 часа седмично просто не ни позволява да осъществяваме толкова лични контакти за сметка на хората, на които това им е работата. И оттам, като не изграждаме тези умения за комуникация и свързване с хората, няма как да сме социално адекватни.
Има и друг момент, за подхода към живота. Това го виждам и при програмистите, а още повече при математиците, особено хората, които се занимават с чиста математика. Там нещата са много по-прости от реалния живот, има много по-малко концепции и връзки между тях. Нищо не е хаотично. Много често и при програмистите е така. Математическата логика е доста чиста и ясна, програмирането също, макар и в по-малка степен.
Докато реалният живот е изключително различен и много хаотичен.
Така, като програмисти, често трябва да живеем два живота. Единият е с програмирането, където можем след няколко часа дебъгване да разберем какво се случва. И другият е този неясен живот, в който, колкото и часове дебъгване да направим, няма да разберем основната причина за определени обстоятелства, които са се случили. Това е много интересен проблем. Много често търсим яснота в реалния живот, която няма как да намерим, тъй като системата, по която той работи, е изключително по-сложна от ламбда калкулус или тюринг машина.
– Често ли идваш в България? Какво ти липсва най-много?
– Последно бях преди 5 седмици. Най-много ми липсва семейството, със сигурност. Основно то.
Всъщност, от време на време ми липсва и… бобът в „Под липите“ в „Лозенец“.
– А гласуваш ли на български избори?
– Трудно ми е да се организирам, а и не се чувствам достатъчно запознат, това е по-скоро моя грешка. През последните 5 години съм изкарал няколко месеца общо в България и ми е по-трудно да дам адекватен вот. Докато живеех там, гласувах.
– За какво мечтаеш?
– За живот, в който съм в добри взаимоотношения със семейство, близки, приятели.. В който имам възможност да правя това, което желая, и допринасям по някакъв начин за живота на другите.