Мой набег в мир открытого исходного кода

Часть 2: Добро пожаловать в Canopy! Ознакомьтесь с частью 1 здесь.

Краткое резюме: В части 1 я описал свое путешествие в мир программирования после того, как оставил работу и записался на учебный курс по программированию с полным стеком в Солт-Лейк-Сити, штат Юта. После 11 изнурительных недель я закончил учебу и получил «официальный» сертификат программиста только для того, чтобы понять, что мне нужно еще многому научиться. Я описал свой поиск работы и то, как это привело меня к собеседованию на стажировку разработчика ПО с открытым исходным кодом в Canopy Tax. Во второй части рассказывается сразу после того, как я закончил техническое интервью.

С улыбкой и парой рукопожатий я покинул здание в тот день, чувствуя себя уверенным и взволнованным возможностью телефонного звонка на этой неделе.

Перенесемся в пятницу. Около 15:00 мой телефон начинает звонить. На связи был Брет, старший разработчик, с которым я впервые разговаривал, из Canopy.

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

Я смог начать это в следующий понедельник. Я и не подозревал, что у меня есть огромные возможности для обучения.

Стартап и его культура

До Canopy я видел «примеры» культуры стартапов, наблюдая за такими вещами, как Кремниевая долина, и читая технические блоги. Я пришел к выводу, что культура стартапов определяется непринужденной обстановкой, бесплатной едой и непринужденным дресс-кодом, когда на работу все носят футболки и шорты.

Когда я вошел в офис в тот первый день, я начал понимать, насколько серьезно Canopy относится к своей культуре и ценностям.

Что меня больше всего запомнило, так это то, что я и мои новые сотрудники понимали, что такое присоединение к команде Canopy. Дело было не в бесплатной еде или зеленых самокатах, на которых все бегают. Вместо этого в центре культуры Canopy были основные ценности, которые воплощает каждый сотрудник.

Растущая боль?

Еще одна вещь, которая привлекла мое внимание, заключалась в том, насколько быстро растет Canopy. Я был одним из 10, кто начал в тот день. Я начал замечать, что каждые две недели количество новых сотрудников, представляющих себя, будет продолжать расти. За последний год Canopy привлекла более 60 миллионов долларов финансирования, а количество сотрудников увеличилось более чем на 200%.

Новый инвестиционный раунд, возглавляемый NEA, увеличивает общий объем финансирования Canopy до 60 миллионов долларов.

При таком росте вы ожидаете деградации или растворения культуры, на которой была основана компания. Было удивительно видеть, что это не так. На мой взгляд, было несколько вещей, которые Canopy сделала для поддержки и роста своей системы основных ценностей.

  1. Приоритет отдан поиску лучших людей - как в плане навыков, так и в соответствии с миссией.
  2. Архитектура микросервисов, которая позволяет командам инженеров развиваться автономно, быстро развертывать и поощряет творчество.

Открытый исходный код All The Things

Canopy открыто поддерживает разработку программного обеспечения с открытым исходным кодом. Canopy полагает, что помимо того, что она построена на программном обеспечении с открытым исходным кодом, ее также следует финансово инвестировать в тех, кто ее поддерживает.

« В то время как успех большинства современных компаний-разработчиков программного обеспечения зависит от набора программного обеспечения с открытым исходным кодом, разработка с открытым исходным кодом часто является трудной и неблагодарной задачей . - Спонсорство Canopy для SystemJs

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

В первый день у меня была возможность поговорить со старшими фронтенд-разработчиками Бретом и Джоэлом, чтобы поговорить о масштабах и видении стажировки с открытым исходным кодом. Они разделили смелое видение - создать репутацию Canopy как лидера в Юте в области инноваций и сотрудничества с помощью технологий с открытым исходным кодом. Они указали на то, что сделали такие компании, как Facebook, Netflix и Airbnb, для создания надежной библиотеки и сообщества с открытым исходным кодом.

Для этого нам потребуется создать надежную документацию и официальное веб-присутствие для существующих проектов Canopy с открытым исходным кодом.

Именно во время этой первой встречи я начал понимать, насколько «свободы» будет в этой новой роли. Помимо этого видения, на самом деле не было никакой структуры для роли.

Двусмысленность и возможность

Когда я поступил в первый семестр колледжа, я объявил свою специальность «Изобразительное искусство» с акцентом на дизайн. В то время я постоянно рисовал и любил получать возможность накладывать цвета, чтобы создать что-то красивое. Тем не менее, я до сих пор помню, как страшно было бы начать новый проект, когда этот чистый белый холст смотрел на меня. Это то, что испытали многие художники и придумали термин «паралич чистого холста». Короче говоря, чистый холст представляет безграничные возможности и бесконечный выбор; иногда художники не справляются с этим.

Когда я сел за свой стол на второй день, я почувствовал, что слишком знакомая тревога выползает из краев моей мысли. Во время моего разговора с Бретом и Джоэлом мне было дано видение - чистый холст, на котором можно рисовать. Мне решать, что я буду делать с этой свободой.

По общему признанию, это был один из аспектов стажировки, который можно было бы истолковать как «обратную сторону». Мне дали небольшое руководство, мне было поручено разобраться в технологиях, которые я никогда раньше не видел, без особой формальной поддержки.

Итак, я сделал то, что делал всегда в подобных ситуациях.

Я составил план атаки.

  1. Просмотрите 10 лучших проектов с открытым исходным кодом Canopy (по количеству звезд). Делайте заметки, выясняйте, что они делают и почему кому-то это нужно.
  2. Выбери один. Сделайте глубокое погружение. Создайте тестовое приложение, используя выбранный проект.
  3. Начните писать учебники.
  4. Создайте сайт, обновите документацию.
  5. Стирать. Повторить.

Свобода выбора

Я начал пролистывать все проекты программного обеспечения с открытым исходным кодом, которые Canopy создавал за последние пару лет. Были проекты от asyncpgsa, оболочки библиотеки Python для asyncpg для использования с sqlalchemy (я все еще не уверен, что это вообще означает), до kremling, до неприличия простой CSS для React. В конце концов, я решил сосредоточить свои усилия на одноместном спа.

Теперь, потратив на это добрые 6 недель, я могу с уверенностью сказать вам, что single-spa - потрясающая программа. Тогда, на второй день, когда я читал такие вещи, как webpack config, lazyloading и dynamic imports, я начал чувствовать то же самое давнее чувство надвигающейся неудачи. То же чувство, которое охватило меня еженедельно на протяжении всего буткемпа, каждый раз, когда моя консоль вспыхивала красным с очередной неразборчивой ошибкой.

Я боялся, что, может быть, Кэнопи выбрал не того человека для работы.

От репо на сайт

Несмотря на синдром самозванца, я упорно добивался своей цели - запустить веб-сайт с одним спа.

Еще одна проблема стажировки заключалась в том, что для меня не было создано реальной структуры поддержки. Часто мне приходилось копаться в устаревшем коде AngularJS с помощью Grunt и Bower, не имея возможности попросить помощи у двух старших разработчиков. Не из-за отсутствия желания, а просто потому, что им нужно было завершить свои собственные проекты, присутствовать на собраниях и уложиться в сроки.

К счастью, в те времена мне на помощь пришла старая добрая культура Canopy.

Несмотря на то, что я не входил ни в одну из «официальных» команд, я начал общаться с разработчиками Front End в инженерном отделе Canopy. Все, с кем я встречался, были готовы и счастливы предложить свою помощь, даже если они тоже не знали, почему файл config.toml не компилируется.

По мере того, как мое понимание технологии росло, росла и моя уверенность в том, что я обращаюсь в службу поддержки. Точно так же репозиторий, в котором размещался single-spa, начал превращаться в полноценный веб-сайт.

Я начал создавать примеры приложений на различных фреймворках, таких как AngularJS, Vue и Angular. Я начал копаться в тонкостях сложного программного обеспечения, такого как babel и webpack. И я начал лучше понимать и ценить сообщество открытого исходного кода, когда начал писать свои первые учебные пособия.

Наконец, 2 июня single-spa.js.org начал свою работу.

Кульминация упорного труда и самоотверженности всего сообщества разработчиков. Мне посчастливилось продемонстрировать всю их тяжелую работу.

Требуется деревня

Термин «открытый исходный код» относится к тому, что люди могут изменять и публиковать, потому что его дизайн общедоступен.

Первоначально этот термин использовался просто для обозначения определенного подхода к созданию программного обеспечения. Однако сегодня открытый исходный код обозначает более широкий набор ценностей - то, что было названо подходом с открытым исходным кодом. Проекты, продукты или инициативы с открытым исходным кодом охватывают и приветствуют принципы открытого обмена, совместного участия, прозрачности, меритократии и развития, ориентированного на сообщества.

« У процветающих проектов с открытым исходным кодом много пользователей, а в самых активных - тысячи авторов . - Фонд Linux »

Работая над single-spa, я снова и снова видел примеры того, как сообщества увлеченных разработчиков объединяются, чтобы создать что-то, что имело большое значение. Вдобавок я увидел, насколько важно для разработчиков чувствовать себя некомфортно, чтобы принять и развить новое поколение программного обеспечения с открытым исходным кодом.

#JuniorDevForLife

Каждый четверг у меня была возможность поговорить с Джоэлом и Бретом о проблемах и возможностях, с которыми я столкнулся за неделю до этого. Во время нашей последней проверки в четверг у меня была возможность поразмышлять с ними над некоторыми ключевыми моментами, которые я хотел бы забрать из своего времени с Canopy.

Из всех полученных отзывов меня поразило последнее предложение Джоэла.

«Если есть что-то, что, я надеюсь, вы извлечете из этого, так это то, что иногда вам нужно напоминать себе, что нужно быть уязвимым. Будьте готовы признать, что не понимаете, что происходит. Всегда будет что-то новое, чего ты не поймешь. Хороший разработчик - это тот, кто готов задавать вопросы ».

С самого начала моего пути программирования я боролся с синдромом самозванца. В моей голове бушует битва между мной, которое хочет признать, что я проиграна, и другим, кто боится быть обнаруженным как самозванец. Только когда я провел время с командой инженеров Canopy, я начал понимать ценность стремления всегда выталкивать себя из зоны комфорта, задавая вопросы и будучи готовым совершать ошибки.

Я благодарен за возможность быть частью команды и компании, которая поддерживает и поощряет своих сотрудников всегда учиться и расти. Готовясь сделать следующий шаг в своем путешествии, я не могу не вспомнить слова печально известного ныне Дэна Абрамова:

Если вы когда-нибудь застрянете, не забывайте: Вы можете сделать это в ES9.