valchkou wrote: 19 Feb 2021 19:38
По каким метрикам или критериям вы бы хотели чтобы работодатель/руководитель оценивал вашу эффективность как специалиста?
Интересуют именно объективные оценки, которые можно предъявить лицом.
Понятное дело что непосредственный руководитель или коллега и так вроде бы знают кто чего стоит и как работает,
но представьте что руководитель, который вас обожал, исчез прямо перед годовым ревью.
Эффективность программ, которые вы пишете и ревью вас, как работника, это не совсем параллельные вещи. Но первое наверное немаловажно.
Что касается программы, я как раз недавно релизнула проект где мне впервые за больше чем два года на текущем месте удалось сделать «по уму» как я хочу. А не «давай давай быстрее» как обычно просят. При этом потратила два месяца, существенно меньше чем скажем наш принципал тратит на похожий функционал.
Если вкратце, то вот что там эффективно с моей точки зрения. Придётся немного в детали того что приложение делает углубиться потому что без этого непонятно про эффективность.
Это real time streaming архив поискового индекса. Нужно сделать так чтобы из него можно было извлекать всякие insights для бизнеса, для наших технических задач и проч. До этого мы просто генерировали индекс и толкали в Solr. Архив существовал только для daily batch job, не для real time процесса. При этом мы архивировали только core часть индекса, а не окончательный индекс, у окончательного индекса динамическая модель, поля не fixed. Поэтому у него и schema то не было конкретной . Что то вроде {headers, list<Attributes>}. Ещё важный момент, мы не только updates, мы ещё deletes генерируем, на основе gazillions of business rules и отследить это можно только по логам в Кибане, муторно, без деталей.
Меня тут это убивало с первого дня, любой troubleshooting превращается в наследование, море впустую потраченного времён . Да, объемы данных тоже важны, мы генерируем 1ТВ индекса за неделю.
То что построила:
1) real time streaming app. Can work in batch mode too. One can switch between the two with a single config change, использовала Spark Streaming + Kafka integration
2) Data contract is enforced. Это очевидно, иначе как потом insights извлекать. Данные сбрасываются в GCS ( hourly buckets), поверху построила Hive and BigQuery tables, первая для интеграции с существующими ETL процессами, вторая для того чтобы бизнес и датасатанисты могли быстро анализировать. Я и сама уже нашла миллион применений, например выявила неиспользуемые больше поля индекса.
3) весь deployment в клауде ( GCP), запускается приложение через workflow templates. Одна команда создаёт Dataproc cluster, запускает Spark submit и подчищает потом кластер когда задача выполнена. Мы сейчас запускаем в batch mode, каждые 15 минут.
4) ну и как обычно alerts , metrics. Последнее в spark streaming практически out of the box, там query listeners - onProgress etc
Вот такие мои критерии

. Посмотрим на ревью в следующем году во что выльется .