Прелюдия

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

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

Сообщите нам свою квалификацию
Продемонстрируйте свою квалификацию. Похоже, что и ежу понятно, правда? Люди подавали заявки на стажировку по программированию, не показывая нам никаких проектов, над которыми они работали, и даже не описывая свой опыт подробно. Мы не ищем полностью сформированные приложения - это все-таки стажеры. Проекты для занятий отличные. Проекты Bootcamp великолепны. Все, что нам нужно - это простые дизайнерские портфолио.

Извлеченный урок: не давайте рецензентам ни малейшего права отклонить вас - их рецензия на ваши материалы должна быть максимально простой и применимой, и не более того.

(Небольшое отступление: я решил немного повеселиться с моим сопроводительным письмом, включив в него свою попытку создать цифровой набросок талисмана Happy Camper в Basecamp 3. Никто мне ничего не сказал об этом, но я убежден, что это дало мне конкурентное преимущество.)

Верный своему слову, Ной обратился ко мне 1 марта с просьбой назначить быстрое телефонное интервью с кем-нибудь из команды Basecamp. Я был взволнован, взволнован, чтобы возродить свои навыки, и больше всего волновался.

Мой первый звонок был с Эроном, одним из экстраординарных сотрудников Basecamp (Интересный факт: Эрон однажды сообщил мне, что я пытался запросить нашу внутреннюю базу данных временных рядов со временем начала 70 секунд после 1 января 1970 года, что привело к поломке. Мы не говорим об этом.). У нас было крутое обсуждение проблем, с которыми Basecamp сталкивался в прошлом в отношении балансировки нагрузки, и связанных с этим архитектурных проблем. В то время как Эрон работал над внутренней системой балансировки нагрузки в случае распределенного отказа в обслуживании (DDoS), я никогда особо не задумывался о проблеме балансировки нагрузки. Тем не менее, разговор был действительно классным, потому что проблемная область открывала интересные пути для решения и заставляла нас разговаривать. Никаких бесполезных технических экранов с просьбой реализовать хеш-карту, никаких викторин по внутреннему устройству Python GIL. Извлеченный урок: немногие компании знают, как правильно оценивать потенциальных стажеров - Basecamp - одна из них.

Примерно через две недели Ной связался с ним и попросил провести еще одно телефонное интервью. Хорошо, я подумал, теперь мы в высшей лиге.

Пришло время интервью. Последние две недели я готовился ко всему, что Ной мог бы бросить в меня, что было честной игрой - SQL-запросы, внутренности Postgres, мелочи Python и т. Д. Каково же было мое удивление, когда мы говорили о моих личных проектах, моих интересах, необходимости учитывать контекст переключаться между запросами MySQL и Postgres и как я смогу внести свой вклад в инфраструктуру данных Basecamp. Я помню, как заканчивал разговор, думая, что я был слишком небрежным - в конце концов, во время собеседования стартапа не было написано ни одной строчки кода? Я, должно быть, попал в подмножество «звони, но не проси кодировать». Я отправил Ною письмо с благодарностью и решил, что на этом все закончилось - в конце концов, оставалось место только для одного стажера по науке о данных.

Один.

Три недели спустя я был в библиотеке, готовясь к среднему классу. Дин. Я проверил свой телефон. «Присоединяйтесь к нам на Basecamp этим летом!» Извлеченный урок: не позволяйте своим мечтам быть мечтами. (Фактический урок: логотип сработал!)

Подарок

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

Наряду с Thermometer я также разработал и выпустил Thermos, пакет R, предназначенный для упрощения логики Thermometer и абстрагирования от мельчайших деталей обнаружения аномалий. Я многое узнал о разработке пакетов и искренне посвятил себя стиху Хэдли.

К концу моего пребывания здесь мы с Ноем объединились в пары и прошли несколько различных A / B-тестов. Каждый раз, когда мне удается объединиться с Ноем для выполнения какой-либо задачи, очень унизительно видеть, насколько я могу улучшить как специалист по данным. То, что мне потребовалось бы как минимум час или два, чтобы распознать, диагностировать и внедрить, для него является обычным решением в одну строку. Извлеченный урок (наилучшим образом): вы ничего не знаете - пока.

Ретроспектива

В ретроспективе Ноя о найме летних стажеров в Basecamp он упоминает три основные причины, по которым Basecamp предлагал стажировки:

Поддерживайте и влияйте на сообщество
Бросьте вызов самому себе, чтобы расти
Улучшать Basecamp (продукт и компанию)

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

Решение проблем, знакомство с реальным миром

При создании Термометра были времена, когда я терял из виду, что делать дальше - их было так много! Помимо того, что мне приходилось иметь дело с крайними случаями реального мира и соответствовать определенным функциям, я никогда раньше не работал над чем-то настолько концептуально большим. Не говоря уже о том, что мне принадлежали 100% всех коммитов на Thermometer и Thermos - я должен был отвечать на вопросы Ноя по поводу термометра, а не наоборот. Однако время от времени я звонил Ною о написанной мной функции и спрашивал о качестве кода, логической целостности и многом другом.

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

Правило бойскаутов

Всегда оставляйте палаточный лагерь более чистым, чем вы его нашли.

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

Прощальные слова

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

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

Извлеченный урок: Basecamp не о внедрении передовых алгоритмов машинного обучения или доминировании на рынке - это о людях, помогающих людям. Вот и все.

Если вам понравился этот пост, нажмите кнопку ❤️ ниже. Спасибо!

Не стесняйтесь присылать мне свои мысли, вопросы и молитвы в Твиттере.