Интервью с Петерисом Круминьшем (CEO в Browserling) и ответы на ваши вопросы

    Хочу запустить цикл интервью с людьми, которые вместе с нами читают Хабр и имеют опыт делать мегакрутые проекты. У них есть желание рассказать про себя, о том, кто они, и как они достигли текущих результатов. В комментариях они постараются ответить на ваши вопросы. На данный момент таких набралось уже 3 человека, кто хочет помочь всем нам прокачать свои мозги. После первого поста глянем стоит ли делать публикации двух остальных.

    К этим людям я поставил требования (можете добавлять в комментариях свои требования):
    1. Они должны быть из Хабра (пускай даже read only)
    2. Иметь желание отвечать каждому, кто пишет в комментариях вопросы
    3. Имеет опыт запуска проектов в США или Европе
    4. Кто запускал проекты без мешка денег

    Начнем с первого нашего друга — pkrumins, он на Хабре с 2011 года, про его разработки писали у нас.

    image

    Место: Сан-Франциско, США
    Занимаемая должность: CEO в Browserling
    Источник интервью: fogcreek

    Наш сегодняшний гость — Петерис Круминьш, сооснователь и CEO компании Browserling — кроссбраузерного он-лайн сервиса по тестированию. А также автор книги «Perl One-Liners» — GTD (getting things done) применительно к программированию — о том, как быстро получать результаты с помощью командной строки на языке Perl. В его блоге регулярно появляются новые статьи.

    Как ты начал заниматься разработкой программ?


    Я начал играть с компьютерами ещё в 6 лет, когда получил доступ к 386 и 486 ПК на маминой работе. Когда я в первый раз сел за компьютер, то был полностью заворожён. С тех пор я каждый день мечтал о своём личном персональном компьютере. И долгое время, пока не получил его, я использовал любые способы, чтобы приблизиться к сфере ИТ. Я подружился со многими ребятами, интересовавшимися компьютерами и у которых они были. Будучи ребёнком, я даже притворялся студентом в нескольких университетах, лишь бы получить доступ к Интернету.

    Моим первым компьютером стал ноутбук. У моего друга по прозвищу Зомби (он, кстати, был потрясным сис.админом) каким-то образом оказался ненужный ноутбук, и он отдал его мне просто так. Я до сих пор храню этот подарок. Ноутбук IBM Butterfly (ThinkPad 701CS). В этом чуде было 8MB RAM, 800MB жёсткого диска и две установленные операционки: Windows 95 и OpenBSD. Позже я проапгрейдил его до 40MB RAM. У него также имелась thinnet PCMCIA карта сетевого адаптера, которая помогла создать мою первую домашнюю сеть на 10МБит/с. Для тех, кто никогда не слышал про thinnet, поясню: это такой Ethernet через коаксиальный кабель (10Base2).

    image

    Свой собственный компьютер я получил намного позже, — годам к 15. Это была убийственная машина: 400Mhz Celeron с 256Mb RAM, 8Gb жёстким диском, 3D Blaster Banshee 16Mb видеокартой и 17» 75Hz 1024×768 CRT монитором. На компьютере стояла новёхонькая Windows 98 (которая к тому моменту только-только была опубликована).

    Я 100% самоучка. Я начал изучать сразу несколько языков одновременно. Когда я получил свой Celeron, я уже имел чёткое представление о том, что я от него хотел. Я хотел создавать web-страницы, и поэтому в первый же день начал писать на HTML, Javascript и CSS. Сначала я не до конца понимал, как работают web-сайты и не знал о языках серверного уровня, и мне пришлось повозиться, прежде чем я узнал, что для запуска сайта в Интернете нужен web-сервер. Сначала я держал свои сайты на Angelfire, но после — настроил свой собственный Linux Slackware сервер с PHP и MySQL. И само собой, мне хотелось стать хакером, — для этого я выучил C и Assembler. Я провёл огромную тучу времени в IRCNet, а заодно и разобрался, как писать mIRC-скрипты и создал свою собственный IRC-клиент с помощью Visual Basic.

    Расскажи нам немножко о том, кем ты стал


    Сейчас я являюсь CEO Browserling. Я создал Browserling в 2011 году вместе со своим другом, это происходило в Bay Area (Сан-Франциско). Мой обычный день состоит из множества написанных строк кода, управления серверами, работы с заказчиками и моими работниками. Мне нравится то, чем я занимаюсь и прямо сейчас я не могу представить себя за чем-нибудь другим, кроме как управлением компанией, занимающейся разработкой. Я был невероятным фанатом Пола Грэма и его сочинений, которые вдохновили меня создать стартап.

    На данный момент я 100%-но сфокусировался на развитии бизнеса. Я не берусь ни за какие проекты на стороне, а также прекратил писать книги, поскольку это отвлекает меня от главной цели — компании. Первым правилом создания успешной компании является 100%-ная концентрация на продукте. Сейчас я занимаюсь увеличением выручки и создаю интернациональную удалённую команду Browserling’а. Только недавно я нанял замечательного инженера из Украины, — я расширяю компанию также и на не-Англоговорящие рынки.

    Помимо этого я решаю множество технических задач. Например, — как эффективно отображать клиентам браузеры, запущенные на виртуальных машинах, или как получать сотни скриншотов браузера в секунду. Мне нравится работать с серверами, и я планирую перенести стек серверов из EC2 и Rackspace облаков на реальные сервера. Облачные сервера хороши, когда ты только начинаешь бизнес, но по достижении определённого уровня важным этапом становится переход на собственное серверное оборудование. Это экономит много денег и многократно увеличивает производительность.

    Что для тебя самое приятное в программировании?


    Я просто счастлив, когда нахожусь в потоке или когда все дела сделаны. Я могу очень часто входить в поток, и конечно же хочу поделиться с вами своим секретом. На самом деле всё просто: все самое важное я делаю ночью, а после сплю весь день. Ночное время идеально подходит для работы в потоке. Ночь устраняет всё, что тебя отвлекает или пытается удержать твоё внимание на себе. Ещё одним секретом нахождения в потоке является… закрытие Twitter’а, Facebook, Skype, Gtalk и G+. Ведь когда ты в потоке, ты не хочешь быть потревоженным случайным звуком оповещения или сообщения.

    image

    А какой средой для разработки ты пользуешься?


    У меня настроено две системы: Windows/Linux. Я использую Windows 7 на своей основной рабочей станции и подключаюсь с помощью SSH к своим Linux-серверам. Совсем недавно (в прошлом месяце) я собрал новую рабочую станцию, в основе которой лежит процессор Intel i7 4790K, разогнанный до 4.7Ghz.

    Также у меня есть линусковый firewall сервер, линуксовый файловый сервер и линуксовый сервер разработки. Я поднимаю линуксовый файловый сервер на Windows через Samba, и он запускает набор дисков, собранных в RAID6, которые допускают отказ двух дисков из рейда. Все эти линуксовые сервера работают на Slackware. Мне нравится простота Slackware. Я использую минималистичные установщики и добавляю лишь те пакеты, которые мне необходимы. Например, фаерволу достаточно Bash, Vim и Iptables; файловому серверу нужны лишь Bash, Vim, Cryptsetup и Samba. А на сервере разработки установлено только то, что непосредственно требуется для разработки.

    Я использую Vim на Windows и Linux, а также gVim и Visual Studio на Windows. Я не могу себе представить процесс разработки в Windows без IntelliSense. Я использую полностью перенастроенную Vim и два десятка плагинов, таких как:
    • surround.vim (быстро редактируемый окружающий текст)
    • repeat.vim (повторение недавних команд)
    • matchit.vim (расширение соответствий ключей %)
    • snipmate.vim (сниппеты кода)
    • nerd_tree.vim (для обзора файловой системы из vim)
    • a.vim (дополнительные C и H файлы)
    • ragtag.vim (соответствия для редактирования HTML)
    • tabular.vim (выравнивание текста)
    • bufexplorer.vim (работа с буфером)
    • python.vim (улучшенная поддержка python)
    • exchange.vim (быстрая замена текста)
    • abolish.vim (подстановка слов)
    • speeddating.vim (увеличение дат)
    • и много других.

    На Windows я бы не смог жить без:
    • Visual Studio (ничто не сравнится с IntelliSense)
    • SQLyog (менеджер GIU для баз данных MySQL)
    • SQLiteSpy (менеджер GUI для баз данных SQLite)
    • pgAdmin (менеджер GUI для баз данных Postrgres)
    • WinSCP and SecureFX (безопасные FTP-клиенты)
    • Putty and SecureCRT (SSH-клиенты)
    • KeePass (менеджер паролей)
    • ClipX (менеджер буфера обмена)
    • Launchy (для запуска программ)
    • Locate32 (для индексирования файлов)
    • allSnap (менеджер окон)
    • AutoHotkeys (автоматизация задач и программ)
    • Virtual CloneDrive (для монтирования образов дисков)
    • IsoBuster (для извлечения образов дисков)
    • ImgBurn (для создания образов дисков)
    • Enounce MySpeed (ускорь или замедли свои видео)
    • Hex Workshop (hex-редактор)
    • VMWare Workstation (виртуальные машины)
    • Cygwin (инструменты unix)
    • UltraMon (поддержка работы с множеством экранов)
    • Beyond Compare (программа для сравнения файлов)
    • Tclock2 (улучшенные часы)
    • Fineprint (прокси для принтера)
    • SumatraPDF (улучшенный просмотрщик PDF)
    • AviSynth (для редактирования видео программно)
    • ffmpeg (для конвертации видео)
    • VirtualDub (для конвертации и редактирования видео)
    • WinDirStat (для визуализации дискового пространства)
    • clink (улучшенный cmd.exe)
    • IDA Pro (для отладки)
    • Photoshop
    • Sysinternals tools

    На Linux я бы не смог жить без:
    • samba (монтирование Linux на Windows)
    • tmux and screen (постоянные shell сессии)
    • all the standard UNIX utilities (awk, sed, grep, head, tail, uniq, sort, и др.)
    • perl (быстрое прототипирование, быстрые хаки, решение задач командой в одну строку)
    • iptables and nftables (безопасность в сети)
    • htop (продвинутый монитор процессов)
    • mtr (улучшенный traceroute)
    • multitail ( отслежвание множества файлов во множестве окон)
    • nc (netcat, швейцарский нож для TCP/IP )
    • iftop (отслеживание пропускной способности)
    • ack (улучшенный grep)
    • ipcalc (калькулятор сетевых адресов)
    • pv (pipe просмотрщик – UNIX pipe прогресс бар)
    • rsync (бекапы)
    • ncdu (визуализация дискового пространства)
    • curl (http клиент)
    • nmap (сканер сети)
    • tcpdump and wireshark (для отладки ошибок в сети)
    • sysdig (strace + lsof + tcpdump в одной программе)
    • youtube-dl (скачивать все онлайн-видео)

    Я программирую сидя. Я никогда не пытался программировать стоя или в движении(на беговой дорожке), — мне это кажется странным. Когда я в потоке, я слушаю канал Вокального Транса di.fm. Но это только если я уже вошёл в состояние потока, иначе музыка просто слишком отвлекает. Я бы не смог программировать без своей верной Microsoft Natural keyboard, которую я использую уже больше 10 лет. Она до сих пор работает прекрасно, но на ней уже видны потертости от времени.

    Я делаю много заметок, когда пытаюсь решить какой-нибудь вопрос. Как только у меня появляется сложная проблема, я пытаюсь разбить её на мелкие подзадачи, которые могут быть решены очень просто. Затем я создаю ToDo-лист для задач и начинаю их выполнять, вычёркивая одну за одной. Вообще говоря, у меня имеется несколько ToDo-листов, объединяющих в себе длительные задачи (на ближайшие 1-2 года), а также средние задачи (на ближайшие несколько месяцев) и короткие задачи, к решению которых я сразу же и приступаю.

    Какие твои любимые книги/ресурсы о разработке?


    Я схожу с ума по компьютерным книжкам и просто по технической литературе. Каждые несколько месяцев я трачу целый день на исследование новейшей литературы и покупаю наиболее заинтересовавшие меня издания. Вот пять моих самых любимых книг по программированию, разработке и компьютерам.
    1. Новый Омнибус Тьюринга — Книга, обязательная к прочтению для любого заинтересованного компьютерами. Эта потрясающая книга состоит из 66 коротких очерков по наиболее важным и интересным компьютерным темам, таким как компрессия, машины Тьюринга, формальная грамматика, невычислимые функции, и нейронные сети. Книга написана повседневным простым языком и почти не содержит математики. Это моя самая любимая книга.
    2. Маленькая книга о Семаформах — Эта книга учит тому, как думать многопоточно и решать проблемы синхронизации. Я очень рекомендую её, особенно если вы самоучка. Она ведёт читателя шаг за шагом через серию классических и не очень проблем синхронизации. В ней очень интересно решаются данные проблемы, и я рекомендую её всем с тех пор, как впервые познакомился с ней.
    3. Жемчужины программирования и Ещё больше жемчужин программирования. — Классическая книга по программированию. Джон Бентли знает, как писать чётко и с энтузиазмом об алгоритмах. Эти книги вечны, и они учат читателя, как разбираться в проблемах, решать их по частям и эффективно реализовывать решения. Ты сможешь пройти собеседование в Google, если прочтёшь эти две книги.
    4. Маленький комбинатор — Маленький комбинатор даёт немножко знаний о LISP самым что ни на есть забавным способом. Книга — это диалог между тобой и автором о сотнях мелких программных комбинаций, который помимо прочего учит читателя думать рекурсивно. Эта книга заставит Тебя думать и немного расширит Твоё сознание. Это одна из самых интересных книг программирования из когда-либо написанных.
    5. Элементы стиля и Элементы стиля программирования — «Элементы стиля» — это книга не совсем о разработке или программировании, а скорее об умении писать. Если хочешь быть успешным программистом, необходимо общаться так, чтобы другим людям было понятно, а соответственно и навыки письма просто необходимы. В книге всего 100 страниц и её можно прочитать за один вечер. «Элементы стиля программирования» — классическая книга по программированию от Кернигана, на форму этой книги очень сильно повлияла книга «Элементы стиля». Это старая книга, но по большей части все, чему она учит, применимо и сегодня. Она состоит из 70 правил программирования, таких как «пишите понятно, — не пытайтесь казаться слишком умными»; «говорите, что вы хотите просто и точно»; «выбирайте способ представления данных, который делает программу простой»; «позвольте данным формировать структуру программы».

    И это я только начал. Я мог бы легко создать топ-100 моих любимых книг. Напишите мне, если вам нужен совет по выбору книги или вы хотите обсудить со мной одну из прочитанных вами!

    image

    Какие технологии ты изучаешь сейчас?


    Я большой фанат Visual Studio, поэтому совсем недавно я скачал Visual Studio 2015 Preview и пробую её на вкус. А ещё я установил Windows 10 Preview на виртуальную машину. Поскольку моя работа крутится вокруг кросс-браузерного тестирования, мне на самом деле интересно, что сможет предложить новый браузер Microsoft — Spartan.
    Компания Google надавно открыла исходный код Kythe, эта программа должна быть намного более лучшим индексатором и обозревателем кода, чем что-либо ранее существующее. Я уже слышал об этом в прошлом году от друга, настоящего гугломана, и я с нетерпением ждал этого. Я собираюсь испытывать её на исходниках ядра Linux в ближайшие свободные выходные.

    Если бы у меня было больше времени, я бы объединил Oculus Rift с платформой движения для создания оборудования виртуальной реальности.

    А чем ты занимаешься, когда не программируешь?


    Мне нравится держать себя в форме. Я занимаюсь лёгкой атлетикой. Я открыл для себя, что короткие спринты бодрят намного лучше, чем чашка крепкого кофе. В дни, когда я выполняю спринты 10 раз по 60 метров, я заряжаюсь энергией на 10-12 часов и программирую как зверь всю ночь напролёт. Также мне нравится соревноваться в треках на дистанцию. 400-метровый спринт и 800-метровая гонка — мои любимые дистанции.

    Какие советы ты бы дал себе как начинающему программисту?


    У меня на примете лишь четыре правила, которые я мог бы посоветовать молодому себе:
    1. Решай задачи быстро, эффективно и двигайся вперёд.
    2. Не делай того, что не создаёт ценности (а главная ценность в наше время — это деньги).
    3. Как можно раньше начинай вести свой блог разработчика.
    4. Делай релизы рано и часто.
    • +13
    • 5,2k
    • 8
    Поделиться публикацией
    Ой, у вас баннер убежал!

    Ну. И что?
    Реклама
    Комментарии 8
    • +3
      Я жду ваших вопросов!
      • +1
        Интересная статья!
        Вопрос у меня такой, помог ли вам как-нибудь Habrahabr в развитии вашего бизнеса?
        • 0
          Spasiba za vapros. Net, Habr ne pomog v razvitii biznes. Ya biznes nachal dva goda pered tem kak ya uznal o Habre. Pochti vse moi klienti v Amerike, i mojet bit' tol'ko odin klient iz Rossii. :)
        • 0
          Пользуюсь случаем и я задам вопрос:

          Будешь ли ты browserling переводить на русский язык и продвигать его в странах СНГ?
          • 0
            Spasiba za vapros. Da, u menya plani perevesti Browserling na russkii yazik v techenii sledushix 4 mesyaca. Ya ob etom obyazatel'no napishu v habre. :)
            • 0
              Думаешь данное направление перспективно в России? Будет ли рентабельно продвигать его?
              • 0
                Eto stoit poprobovat', i eto ne dorogo. Prosto nado russkuyu versiyu saita zapustit' i posmotret' chto budet. V Rossie i v SNG ochen' mnogo razrabotchikov kto ne znayet o Brauzerlinge, tak chto shansi horoshie.
          • 0
            Если честно я был приятно удивлен увидев тебя на хабре, так как давно уже слежу за твоим блогом. Добро пожаловать!

            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

            Самое читаемое